999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

Android平臺電子電路實驗教學應用的開發

2016-05-17 11:18:17中國傳媒大學駱新全
電子世界 2016年8期
關鍵詞:實驗教學

中國傳媒大學 喻 進 駱新全

?

Android平臺電子電路實驗教學應用的開發

中國傳媒大學 喻 進 駱新全

【摘要】為了使學生及時掌握電子電路實驗的操作,提出了Android平臺的電子電路實驗教學應用。該應用借助Android中繪圖、觸控的應用程序接口,設計了移動終端上的電子電路技術實驗練習模塊,提高了教學輔助系統的交互體驗,突顯出這種移動終端應用所具有的可用性和有效性。

【關鍵詞】電子電路;Android;實驗教學

1 概述與現狀

電子電路實驗課是通信電子類專業教學內容的重要組成部分。通過在實驗室操作真實儀器和電路,學生完成各種類型的實驗任務。基于傳統臺式機的教學輔助系統可供學生完成各類電子電路的實驗練習,表達輸出測試結果。然而隨著個人移動終端的普及,受到體積的限制,傳統的教學輔助系統無法滿足移動場景下的需求。

當前在Android應用市場上相對成熟的應用有Circuit Jam和EveryCricuit。Circuit Jam將若干電路由易到難排列,用戶需要操作電路圖來配合當前顯示的波形,過程中電路復雜度不斷增長,用戶也會對電路有更深刻的了解。EveryCricuit則允許用戶查看經典的電路圖,并可創建自己的電路,觀看動態的電流、電壓動畫,這為用戶深入認識電路及其工作方式提供了很強的靈活性。

國外成熟的電子電路實驗應用,為設計開發適合國內教學特點的應用提供了有益的參考。針對以上分析,本文提出了Android平臺的電子電路實驗教學應用,以此作為傳統教學輔助系統的補充,能使學生在課下隨時隨地復習和掌握有關電子電路的相關技能,從而提高電子電路實驗的教學效果。

2 應用總體設計

圖2-1 應用結構示意

2.1設計思路

電子電路實驗按照類別的不同,設計成LineActivity、MoveActivity和FlipActivity三種模式。應用中所設計的活動類、基類等組件的結構示意如圖2-1所示。

應用所包含的活動類分別要完成三類實驗模式,只要是符合某個模式的實驗內容,都可以在對應活動類中完成初始化。在LineActivity中,學生根據實驗要求連接電路,輕點測量表筆和電路節點,由此生成若干電路連線,且可劃斷某個連線;而在MoveActivity中,學生選擇元件或儀器,拖拽它們到指定電路的空缺處;在MoveActivity的基礎上設計的FlipActivity,允許學生旋轉元件以完成電路。

結構示意圖下部分的兩個基類,即代表電路圖層對象和節點對象,它們分別定義了電路圖層對象和節點對象的坐標、寬和高、移動方法、位置方法、碰撞檢測方法、是否可見方法以及繪制方法等,方便對實驗界面里的電路圖層和節點進行控制。

列表活動類ListActivity則負責顯示實驗列表并提供啟動相應活動類的入口。

2.2模塊流程圖

結構示意圖中,各活動類涉及的模塊流程圖如圖2-2所示。

各個活動類負責處理如點按、拖拽這樣的觸摸事件。從模塊流程圖可看出,模塊的核心是不斷的繪圖和刷新界面,而判斷正誤的規則寫入各個實驗中,提交后便可見到判定結果并顯示正確答案。

圖2-2 活動類設計的流程圖

3 電子電路實驗的實現

電子電路實驗有以下幾個關鍵問題,下面列出相應解決方案及其代碼片段。

3.1LineActivity的觸摸響應邏輯

LineActivity的功能是學生可以通過點擊儀器的測量表筆和電路節點完成儀器和電路的連接,并且可以劃斷電路連線以重新連線。圖3-1是觸摸事件和相應判斷邏輯關系的示意。

圖3-1 LineActivity觸摸響應邏輯示意

3.1.1連接測量表筆和節點

在Activity里定義了判斷是否連線成功的方法line(),節點被判斷為點擊之后調用這個方法,若連線成功,則調用視圖類(View)的postInvalidate()方法刷新界面,重繪時調用Canvas類的drawLine()方法繪制直線。

代碼片段:

3.1.2劃斷電路間的連線

在節點類CircuitPoint里定義了判斷觸摸點是否劃過電路連線坐標范圍內的方法,只要在Activity的onTouchEvent()方法中獲取觸摸點坐標,并調用isCut()方法就能判斷連線是否被切斷。若被切斷,則在該連線坐標范圍繪制一條與畫布背景顏色相同的直線。下面片段是連線為豎直方向的方法,即比較觸摸點與連線的對應坐標值,水平方向與之類似。

代碼片段:

3.2MoveActivity的觸摸響應邏輯

MoveActivity的功能是學生可以通過拖動元件或儀器至目標框中完成選擇,若未完成選擇,元件或儀器自動回到原位置。圖3-2是觸摸事件和屬性動畫之間關系的示意。

圖3-2 MoveActivity觸摸響應邏輯示意

3.2.1對象與目標的碰撞檢測

在CircuitPart里定義判斷是否拖拽成功的方法crash(),該方法通過對觸摸點離開屏幕時圖片的位置和目標框進行坐標比較,從而判斷對象是否已經在目標范圍內。

代碼片段:

3.2.2借助屬性動畫處理取消事件

用戶拖拽某個對象中途要放棄而選擇另一個,那么當前的對象應該回到初始位置,而直接設置界面上會有明顯的閃爍,可以借助屬性動畫改善。屬性動畫可以在指定時間內改變一個對象的屬性。下面的例子指定的動畫屬性為對象在屏幕上的橫縱坐標,animator對象會計算出圖片當前位置到原來位置的距離,然后執行動畫便可。

代碼片段:

3.3FlipActivity的觸摸響應邏輯

此活動類在MoveActivity的基礎上,能讓學生先旋轉元件,再點按元件拖動到指定位置以完成選擇。對于二極管等具有方向性的元件,該活動類增強了實驗的可操作性。圖3-3是觸摸事件和旋轉動畫之間關系的示意。

圖3-3 FlipActivity觸摸響應邏輯示意

3.3.1實現元件在觸摸后旋轉

在應用中,元件的實質是Bitmap類對象,可以使用矩陣類Matrix的postRotate方法對其執行旋轉操作,把旋轉后的Bitmap返回給自身。不過這種方法使得旋轉在調用的時候已經發生,看起來會比較生硬,缺乏靈活性。

為了讓旋轉在特定時間內發生,自定義一個旋轉動畫監聽器類,用以實現ValueAnimator類的監聽器接口,把旋轉角度、旋轉軸坐標值作為參數供其計算屬性值。

代碼片段:

private class rotateAnimatorListener implements ValueAnimator. AnimatorUpdateListener {... public rotateAnimatorListener (Matrix matrix, int id) {...}

@Override

public void onAnimationUpdate (ValueAnimator animation) {

float degree = (Float) animation.getAnimatedValue("rotation"); ... tMatrix.postRotate(degree, pivotX, pivotY); ... } }

監聽器類對象負責處理旋轉事務,可以為屬性動畫對象指定一個該類對象,由于setRotateAnimation傳入的參數中包含元件所代表的矩陣,因此可對任意指定的元件對象設置旋轉動畫。其后,可以為屬性動畫對象指定持續時間并令其觸發。

3.3.2分配不同的觸摸響應邏輯

在此活動類中,元件有被旋轉和被拖動兩種狀態;被拖動如同MoveActivity分配到ACTION_MOVE事件中,而被旋轉則分配到ACTION_UP,即手指在屏幕上抬起。元件被旋轉的狀態之所以不分配到ACTION_DOWN,主要是由于ACTION_MOVE事件起始于ACTION_DOWN,如果旋轉狀態分配到ACTION_DOWN,將會出現在一個手勢中旋轉并拖動的現象。

為解決這一沖突問題,將被旋轉分配到ACTION_UP事件中,這樣輕點元件并抬起只響應旋轉,按住元件并移動則響應拖動。另外在ACTION_MOVE事件中,還要判斷元件是否處于豎直狀態,若沒有,則彈出相應提示對話框。

代碼片段:

if (circuitParts.get(0).isInPart(eventX, eventY)) { ...

setRotateAnimation(90, circuitParts.get(0).getX() + circuitParts. get(0).partWidth / 2,

circuitParts.get(0).getY() + circuitParts.get(0).partHeight / 2,

circuitParts.get(0).partMatrix, ); ... }

上面的代碼展示了在ACTION_UP事件中,輕點二極管元件并抬起,使得二極管繞自身中心旋轉了90度。

判斷豎直狀態的邏輯比較簡單,對每個元件設置一個整型flipNum值,也就是旋轉次數,初始化為零。對于各個元件,每旋轉一次flipNum自增1,判斷時為flipNum對2取余,也就是說,旋轉次數為偶數便會彈出提示。至于拖動以分配到不同的結果時,亦是對旋轉次數取余的方法來判斷當前選擇元件的狀態。

4 運行效果與總結

4.1運行效果示意

下面是應用內包含的實驗內容及其對應的活動類。

電子電路實驗中,連線的實驗如圖4-1所示。在此劃斷了一根連線,并把萬用表的表筆和劃去后的節點連接了起來。

電子電路實驗中,旋轉元件并拖動來填充電路的實驗如圖4-2所示。在此先輕點二極管使其為豎直方向,再將它點按拖動了虛線框里,從而完成電路填充。

圖4 1LineActivity實例,萬用表測量電流,劃斷電路以連線

圖4-2 FlipActivity實例,二極管基本電路,旋轉元件填充電路

4.2總結與展望

本文描述了在基于Android系統的移動終端上實現電子電路實驗的方法和過程,充分運用Android SDK中的組件和方法,結合電子電路實驗課的實際,解決了包括繪圖、觸摸響應邏輯等問題。不過,本研究的實際效果還略顯粗糙,在業務邏輯和技術實現上還有進一步改良的空間。

個人移動終端的繁榮為移動開發者提供了廣闊的平臺,而在Android平臺上服務于教育教學的應用仍相對匱乏。相信隨著應用市場的逐漸成熟,創新的實踐方法被不斷擴充,更加豐富優質的實驗教學類應用將供高校師生使用。

[1]魯學亮,陳金燾,孫秋瑞,劉臻.移動校園轉型實踐——基于WebApp的移動應用客戶端設計與實現[J].中國教育信息化,2013,21:17-20.

[2]劉歡,盧蓓蓉,馬晨輝.淺析高校校園移動應用開發[C].武漢大學學報(理學版),2012.

[3]馬建平,奚亮亮.基于移動應用的校園信息服務系統[C].計算機系統應用,2012.

[4]徐宜生.Android群英傳[M].北京:電子工業出版社,2015.

[5]任玉剛.Android開發藝術探索[M].北京:電子工業出版社,2015.

[6]Bill Phillips,Chris Stewart.Android Programming[M].The Big Nerd Ranch Guides,2013.

[7]Bogdan-Alexandru Deaky.Developing Android client applications for online laboratories[C].2014 IEEE Global Engineering Education Confere nce(EDUCON),2014.838-843.

[8]Tianchong Wang,Daniel Churchill.Educational application of touchpad technology in higher education in HongKong[C].2013 IEEE 63rd Annual Conference International Council for Educatioin Media(ICEM),2013.

[9]Hou Han,Dongqing Wang,Jun Xu.Classroom Assessment and Analysis System[C].2013 International Conference on Advanced Cloud and Big Data,2013.

[10]Daniel Orford,Genovefa Kefalidou.Electronic Lecturing and Teaching Aid using Collaborative Smart Phones[C].Science and Information Conference,2013.

猜你喜歡
實驗教學
問題引導在初中化學實驗教學中實踐探索
家長(2023年2期)2023-03-14 06:55:16
關于基礎教育階段實驗教學的幾點看法
科學與社會(2022年1期)2022-04-19 11:38:42
光反應與有機化學實驗教學結合的研究
云南化工(2021年8期)2021-12-21 06:38:04
小議初中化學演示實驗教學
甘肅教育(2020年4期)2020-09-11 07:42:36
電容器的實驗教學
物理之友(2020年12期)2020-07-16 05:39:20
對初中化學實驗教學的認識和體會
甘肅教育(2020年8期)2020-06-11 06:10:04
幾何體在高中數學實驗教學中的應用
基于云計算的計算機實驗教學探討
高中生物實驗教學中形成性評價的實施——以“觀察根尖分生區組織細胞的有絲分裂”實驗教學為例
中學生物學(2016年8期)2016-01-18 09:08:21
高中自然地理課堂實驗教學的探討
地理教學(2015年13期)2016-01-06 11:59:56
主站蜘蛛池模板: 伊人久久福利中文字幕| 亚洲欧美成人综合| 国产成人高清精品免费软件| 免费看一级毛片波多结衣| 国产97视频在线| 毛片免费在线视频| 亚洲国产综合精品一区| 久久国产精品麻豆系列| 狠狠v日韩v欧美v| 国产十八禁在线观看免费| 日韩av无码精品专区| 91在线视频福利| 一级爆乳无码av| 韩日无码在线不卡| 欧美黄色网站在线看| 九色在线观看视频| 六月婷婷激情综合| 天天躁夜夜躁狠狠躁躁88| 久久综合色视频| 在线看片国产| 一本一道波多野结衣av黑人在线| 99久久精彩视频| 久爱午夜精品免费视频| 国产av色站网站| 亚洲免费福利视频| 国产一级裸网站| 精品一区二区三区视频免费观看| 国产AV毛片| 亚洲专区一区二区在线观看| 国产精品 欧美激情 在线播放| 呦视频在线一区二区三区| 国产麻豆精品久久一二三| 亚洲无码视频图片| 国产精品国产三级国产专业不| 91无码人妻精品一区二区蜜桃| 国产凹凸视频在线观看| 四虎成人在线视频| 免费国产高清精品一区在线| 国产国拍精品视频免费看| 色综合天天综合中文网| a级毛片网| 亚洲综合色在线| 九色91在线视频| 久久久久无码精品| 久久国产高清视频| 一级毛片免费不卡在线| 亚洲欧美日韩另类| 2020国产精品视频| 中文成人在线视频| 国产交换配偶在线视频| 成人在线不卡视频| 日韩大乳视频中文字幕| 久青草免费在线视频| 一级爱做片免费观看久久 | 国产真实乱子伦视频播放| 国产精品偷伦在线观看| 波多野一区| 日韩在线欧美在线| 伊人久久大线影院首页| 国产激情无码一区二区APP | 亚洲无码精彩视频在线观看| 在线观看热码亚洲av每日更新| 久久黄色免费电影| 手机在线免费毛片| 久久免费精品琪琪| 狼友视频一区二区三区| 91精品免费久久久| 97青草最新免费精品视频| 亚洲美女AV免费一区| 国产精品无码久久久久AV| 日本免费精品| 欧美日韩一区二区在线免费观看| 亚洲91精品视频| 青青草原国产精品啪啪视频| 欧美在线一级片| 久久精品娱乐亚洲领先| 91精品国产自产在线老师啪l| 国产靠逼视频| 国产自产视频一区二区三区| 麻豆国产原创视频在线播放| 99久久婷婷国产综合精| 久久久久久尹人网香蕉|