版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、專業(yè)工程綜合實訓設計報告81目 錄第一章 緒論11.1課題的背景及意義11.2系統(tǒng)框架1第二章 系統(tǒng)分析32.1 系統(tǒng)可行性分析32.1.1 功能可行性分析32.1.2 運行環(huán)境可行性分析32.2 開發(fā)環(huán)境簡介32.2.1 java development kit(jdk)介紹32.2.2 android sdk 介紹32.2.3 eclipse開發(fā)工具介紹42.2.4 android development tools(adt)介紹4第三章 android開發(fā)常用到的技術及環(huán)境搭建43.1 android開發(fā)常用到的技術43.1.1 activity43.1.2 service63.1.3
2、content provider 內(nèi)容提供者63.1.4 intent 信使63.2環(huán)境搭建63.2.1安裝jdk63.2.2安裝eclipse73.2.3 android sdk安裝73.2.4 adt安裝7第四章 手機計步器的設計與實現(xiàn)84.1計步器功能的設計84.2計步器功能的實現(xiàn)104.2.1 計步開始及暫停104.2.2 復位鍵114.2.3設置步長114.2.4設置體重114.2.5歷史記錄的查看及刪除12第五章 計步器的界面效果165.1用戶界面165.2設置界面175.3歷史界面205.4日歷選擇界面215.5用戶離開界面22第六章 系統(tǒng)測試與分析236.1 測試過程236.2
3、 測試分析36結 論36參考文獻37第一章 緒論1.1課題的背景及意義當今社會,手機已經(jīng)成為人們工作生活中必不可少的一項通訊和娛樂工具,隨著手機的不斷更新,手機的各種高層服務和應用層出不窮?,F(xiàn)在智能手機可謂是爆發(fā)式增長,與此同時傳統(tǒng)手機在不斷地消失,諾基亞就是在這樣的環(huán)境中受到了重創(chuàng)。現(xiàn)在主要有三個使用率和關注度最高的手機平臺,分別是:android,ios和windows phone平臺,在這三個平臺中android的占有率最高。自2007年11月google公司發(fā)布android系統(tǒng)以來,短短幾年時間,android已經(jīng)占據(jù)了智能手機市場的半壁江山,成為目前最為炙手可熱的智能手機操作系統(tǒng)。
4、android走進了越來越多人的生活,成為他們獲取信息的主要平臺。android平臺對于google和用戶的意義不在于手機本身,而在于為了推動移動互聯(lián)網(wǎng)產(chǎn)業(yè)鏈的迅速成型。具有開源性的android手機平臺與之前symbian、windows mobile等操作系統(tǒng)不同,它們收取高額的授權費用,而android不需要,這樣使得應用開發(fā)成本大大降低;也正是由于它的源代碼是開放的,使得開發(fā)者可以隨心所欲的開發(fā)應用。同時,手機生產(chǎn)商和軟件開發(fā)商也能夠在這里得到利潤,手機軟件得到有效的維護協(xié)調(diào)發(fā)展。這正是google發(fā)布android平臺的意義,也是android平臺的使命所在。同時目前搭載androi
5、d平臺的應用有很多,但針對傳感器而開發(fā)的應用市場上還不多見。本應用正是針對android手機內(nèi)置的加速度傳感器而特別設計的應用。所以鑒于移動端應用開發(fā)是目前軟件開發(fā)行業(yè)正在興起并會越來越炙手可熱的一個分支,并且針對傳感器的開發(fā)相對空白我選擇了研究此課題。1.2系統(tǒng)框架在設計一款軟件時一般都會把它分成幾個模塊,在模塊的基礎上還會再分小模塊,這樣就達到了軟件模塊化設計的要求,然后再對各個小模塊進行詳細設計和編寫,采用模塊化的管理方式可以使軟件結構更清晰,也使得軟件的管理更有秩序,使別人容易理解和閱讀,但是這些模塊也要根據(jù)別的模塊來設計和約束,不能隨便設計脫離框架,設計完成后需要把每個設計完成的模塊
6、根據(jù)總體框架結合起來。根據(jù)本軟件的功能需求,將本軟件分為以下幾個功能模塊,如圖 1-1所示:主界面步數(shù)公里暫停/開始卡路里設置走過的總步數(shù)走過的總長度開始/暫停運動運動所消耗的能量復位所有數(shù)據(jù)清零選擇日期日期步長體重設置用戶步長設置用戶體重結束關閉應用軟件歷史查看歷史記錄刪除歷史記錄保存保存記錄圖1-1 整體框架圖第二章 系統(tǒng)分析2.1 系統(tǒng)可行性分析可行性分析(feasibility analysis)也稱為可行性研究,是在系統(tǒng)調(diào)查的基礎上,針對剛剛開發(fā)打算進一步應用的系統(tǒng)的必要性和可能性的分析和研究??尚行匝芯康哪康闹饕谟?,用最小的代價在盡可能短的時間內(nèi)確定問題是否能夠解決。1
7、該階段通過對系統(tǒng)總目標的初步調(diào)研與分析,提出可行性方案并進行論證。2.1.1 功能可行性分析1、計步功能:根據(jù)用戶設置的步長和體重,估算用戶步行運動所消耗的熱量。當距離發(fā)生改變時在前臺界面上刷新用戶步行的步數(shù)、距離、和消耗的卡路里;該計步功能還實現(xiàn)了notification后臺運行的功能。 2、設置參數(shù)功能:設置用戶的步長、體重2個參數(shù)信息。通過設置體重可以估算出不同體重的人運動所消耗的卡路里量。 3、退出系統(tǒng)功能:當用戶想終止計步軟件時,可以點擊退出菜單后退出本系統(tǒng)。 4、歷史記錄功能: 用戶可以查看以往的歷史記錄。 5、保存功能: 有戶可以保存當天的運動量,以便之后查看。2.1.2 運行環(huán)
8、境可行性分析本軟件是在windows 7 操作系統(tǒng)中,利用eclipse 開發(fā)工具搭載android sdk工具包,結合android手機自帶的sqlite數(shù)據(jù)庫進行開發(fā)。2.2 開發(fā)環(huán)境簡介2.2.1 java development kit(jdk)介紹jdk是java語言的軟件開發(fā)工具包。本應用用的是jdk的j2me版,它主要用于移動設備、嵌入式設備上的java應用程序。沒有jdk的話,無法編譯java程序,所以這是開發(fā)java程序必須安裝的工具。2.2.2 android sdk 介紹sdk(software development kit)軟件開發(fā)工具包。被軟件開發(fā)工程師用于為特定的
9、軟件包、軟件框架、硬件平臺、操作系統(tǒng)等建立應用軟件的開發(fā)工具的集合。因此,android sdk指的是android專屬的軟件開發(fā)工具包。2.2.3 eclipse開發(fā)工具介紹eclipse是一個開放源代碼的、基于插件的可擴展性平臺。也可以說它只是一個框架和一組服務,用于通過插件組件構建開發(fā)環(huán)境。eclipse附帶了一些標準的插件集,包括java開發(fā)工具(jdk)。本次應用就是將eclipse當作java集成開發(fā)環(huán)境來使用,但是它的作用并不僅僅如此。由于eclipse中的每樣東西都是插件,所以只要有插件就可以使用它,因而不僅僅是java語言,c/c+、php等語言也可以使用eclipse。2.
10、2.4 android development tools(adt)介紹目前android開發(fā)所用的開發(fā)工具是eclipse,在eclipse編譯ide環(huán)境中,安裝adt,為android開發(fā)提供開發(fā)工具的升級或者變更,簡單理解為在eclipse下開發(fā)工具的升級下載工具。adt擴展了eclipse的功能,讓我們能快速建立新的android項目、創(chuàng)建應用程序的用戶界面。它可以幫助eclipse找到android sdk,再加上android框架的api組件調(diào)試使用android sdk工具,以便apk分發(fā)給應用程序。同時大大減輕了android應用程序的開發(fā)工作量,工具集成xml編輯器,將給開發(fā)
11、者一個令人難以置信的開發(fā)android應用環(huán)境。當然如果你不用eclipse作為你的開發(fā)工具,你就不需要下載adt, 只下載sdk即可開發(fā)。2第三章 android開發(fā)常用到的技術及環(huán)境搭建3.1 android開發(fā)常用到的技術3.1.1 activityactivity是android應用程序開發(fā)中最重要的組件。一個activity提供一個屏幕,用戶可以用來交互以完成某項任務,例如點擊、拍照、撥號等。它是用戶與應用交互的直接且最重要的組件。activity生命周期可以用幾個函數(shù)說明:oncreate():activity開始創(chuàng)建時調(diào)用;onstart():在activity開始執(zhí)行時調(diào)用,這
12、時activity已經(jīng)可見;onresume():在activity獲得用戶焦點時調(diào)用,此時activity可以和用戶交;onpause():在activity被暫停時調(diào)用,失去用戶焦點,但沒有被摧毀;onstop():在activity被停止時調(diào)用,此時activity已經(jīng)不可見,但仍然沒有被摧毀;onrestart():在activity被重新啟動時調(diào)用;ondestory():在activity被徹底摧毀時調(diào)用。下面用一張圖來解釋activity的生命周期在各函數(shù)之間的跳轉(zhuǎn)。如圖3-1:圖3-1 activity的生命周期圖3.1.2 service一個service是一段長生命周期的,
13、沒有用戶界面的程序,可以用來開發(fā)如監(jiān)控類程序。一個很好的例子就是用手機在播放音樂時,用戶可以進行其它應用的活動而此時并沒有播放音樂的界面,但是音樂在后臺播放并不受影響,這就是service的功勞。還有就是鬧鐘提醒,當你設置好鬧鐘后并不需要一直顯示在鬧鐘那個界面,甚至手機也可以關掉但是只要時間到了,鬧鐘依然可以提醒,這也是service的作用。3.1.3 content provider 內(nèi)容提供者android平臺提供了content provider,它是一個應用程序的指定數(shù)據(jù)集提供數(shù)據(jù)給其他應用程序。這些數(shù)據(jù)可以存儲在文件系統(tǒng)中、在一個sqlite數(shù)據(jù)庫、或以任何其他合理的方式。本文用到了
14、文件存儲和shared preferences的存儲方式。文件存儲大家都很熟悉,就是以文件為操作對象,向文件中寫入或讀取數(shù)據(jù)。shared preferences可以將數(shù)據(jù)保存到應用程序的私有存儲區(qū),這些存儲區(qū)中的數(shù)據(jù)只能被寫入這些數(shù)據(jù)的軟件讀取。它的本質(zhì)是基于xml文件存儲key-value鍵值對數(shù)據(jù),通常用來存儲一些簡單的配置信息。例如:登陸時用到的用戶名和密碼。3.1.4 intent 信使intent 也是android開發(fā)者比較重要的一部分,它主要用來解決android應用的各項組件之間的通訊,被稱為android應用中的信使。intent負責對應用中一次操作的動作、動作涉及數(shù)據(jù)、附
15、加數(shù)據(jù)進行描述,android則根據(jù)此intent的描述,負責找到對應的組件,將 intent傳遞給調(diào)用的組件,并完成組件的調(diào)用。所以它常被用來啟動一個activity或service,3例如當從一個activity啟動另一個activity時,可以這樣操作,intent intent=new intent();intent.setclass(startactivity.this,secondactivity.class);this.startactivity(intent)。3.2環(huán)境搭建首先要有一臺安裝有windows系統(tǒng)的計算機,接下來就是安裝過程。3.2.1安裝jdk下載jdk,在這里
16、1. 我的電腦>屬性>環(huán)境變量>系統(tǒng)變量;2. java_home值為:d:program filesjdk(你安裝jdk的目錄);3. classpath 值為:;%java_home%libtools.jar;%java_home%libdt.jar;%java_homebin;4. path:在開始追加%java_homebin;如果安裝成功,打開cmd窗口,輸入java-version會出現(xiàn)如圖3-1顯示的信息:圖 3-1 jdk安裝成功提示信息3.2.2安裝eclipse下載eclipse,這里是網(wǎng)址/downloads/解
17、壓后即可使用。3.2.3 android sdk安裝在android developers下載最新版本的壓縮包,下載完成后解壓到任意路徑,運行sdk setup.exe。選定你要安裝的內(nèi)容。這里也需要配置環(huán)境變量,在用戶變量中新建path值為:android sdk中的tools絕對路徑。53.2.4 adt安裝打開eclipse ide,點擊菜單中的“help”然后點擊“install new software”,再點擊add.按鈕,這時會彈出一個對話框要求輸入,name和location:name項可以自己隨便填取,location輸入http:/dl- with后的下拉列表中選擇我們剛才
18、添加的adt,我們會看到下面出有developer tools,展開它會有android ddms和android development tool,選定他們。然后按要求一步一步next,完成之后,這個過程可能會很慢。這取決于網(wǎng)絡環(huán)境。最后選擇window->preferences.在左邊的面板選擇android,然后再右側(cè)點擊browse,并選中sdk路徑。點擊apply,到此就配置完成了6。第四章 手機計步器的設計與實現(xiàn)4.1計步器功能的設計軟件采用最主流的android軟件應用開發(fā)風格,并使用android的原生組件進行開發(fā),界面友好,簡潔易懂,組建布局具有誘導性,用戶使用極其方便
19、快捷。1、主界面操作流程見圖4-1: 開始計步計步暫停計步清零開始圖4-1 圖為主界面操作流程圖2、設置界面操作流程見圖4-2:主界面設置體重步長圖4-2 圖為設置界面操作流程圖 3、日歷選擇界面操作流程見圖4-3:主界面日歷選擇日歷圖4-3 日歷選擇界面操作流程圖4、歷史界面操作流程見圖4-4:主界面歷史查看選擇范圍刪除圖4-4 歷史界面操作流程圖5、復位界面操作流程見圖4-5:主界面復位清空數(shù)據(jù)圖4-5 復位界面操作流程圖6、關閉程序界面操作流程見圖4-6:主界面關閉結束程序圖4-6 關閉程序界面操作流程圖4.2計步器功能的實現(xiàn)計步器的主要功能有:計步開始/暫停,設置,顯示運動所消耗的卡路
20、里,走過長度。本軟件是一個結合手機用戶特別是智能手機用戶常用功能的一個軟件平臺,本軟件可以通過界面快速獲取運動的情況,獲取信息后可以對這些信息進行個性化處理以方便用戶直觀的感受運動量。4.2.1 計步開始及暫停首先對暫停/ 開始鍵做一個監(jiān)聽start_pause_button.setonclicklistener(new view.onclicklistener()同時還要對此時狀態(tài)做一個判斷start_pause_button.settext(misrunning ? r.string.pause : r.string.resume);若初始狀態(tài)為記錄則顯示暫停,若初始狀態(tài)為非記錄狀態(tài)則顯示
21、開始。4.2.2 復位鍵對清零按鈕做一個view即:resetbutton = (button) findviewbyid(r.id.reset_button);實現(xiàn)清零的語句很簡單,對“開始”鍵做一個監(jiān)聽,當用戶點擊“開始”鍵時,即:resetbutton.setonclicklistener(new view.onclicklistener()7執(zhí)行一下命令:public void onclick(view v)resetvalues(true);這樣記錄數(shù)據(jù)清零的按鈕就完成了。4.2.3設置步長對于設置步長,首先要獲取用戶所輸入的步長信息:return float.valueof(mse
22、ttings.getstring("step_length", "70")若用戶未對步長信息進行編輯,則默認為70.在distancenotifier中使用msteplength來計算走過的距離:mdistance = mdistance + (float) (msteplength / 100000.0);notifylistener();4.2.4設置體重對于設置體重,首先要獲取用戶所輸入的體重信息:return float.valueof(msettings.getstring("body_weight", "50&q
23、uot;若用戶未對步長信息進行編輯,則默認為50. 在caloriesnotifier中使用mbodyweight來計算用戶因運動所消耗的卡路里:mcalories += (mbodyweight * (misrunning ? metric_running_factor : metric_walking_factor) * msteplength / 100000.0;notifylistener();4.2.5歷史記錄的查看及刪除public class view1 extends activity/使用actionbaractivity出現(xiàn)閃退不能運行, 可以使用 activitypri
24、vate listview list;private button btnback,btnforward;private int myear,mmonth,mday;private textview tvtitle;string from;string today;int to;int _id;simplecursoradapter madapter;database db;cursor cur;overrideprotected void oncreate(bundle savedinstancestate) super.oncreate(savedinstancestate);setcon
25、tentview(r.layout.view1);db=new database(this);db.creattable_amount();list=(listview)findviewbyid(r.id.listview1);calendar c = calendar. getinstance(timezone.gettimezone("gmt+08:00");myear = c.get(calendar.year); mmonth = c.get(calendar.month)+1; mday=c.get(calendar.day_of_month); if(mmont
26、h<10)today = myear + "-" + "0"+mmonth; else today=myear+"-"+mmonth; cur=db.getamount(today);from=new string"date","distance"to=new intr.id.textview1,r.id.textview2;cur=db.getamount(today);madapter = new simplecursoradapter(this, r.layout.items, cu
27、r,from, to);list.setadapter(madapter);list.setonitemlongclicklistener(new onitemlongclicklistener() overridepublic boolean onitemlongclick(adapterview<?> vparent, android.view.view view,int position, long id) / todo auto-generated method stub_id=(int)id;new alertdialog.builder(view1.this).sett
28、itle("提示").setmessage("確定刪除該細節(jié)?").seticon(r.drawable.ic_launcher).setpositivebutton("確定",new dialoginterface.onclicklistener() public void onclick(dialoginterface dialog, int whichbutton) /log.v("",""+_id); db.delamount(_id); madapter.changecursor(cu
29、r); (simplecursoradapter) madapter).notifydatasetchanged();finish(); system.out.println("ok"); list.setadapter(madapter);).setnegativebutton("取消",new dialoginterface.onclicklistener() public void onclick(dialoginterface dialog, int whichbutton) ).show();return false;);tvtitle=(te
30、xtview)findviewbyid(r.id.tvtitle);tvtitle.settext(myear+"-"+mmonth+"-"+"01"+"-"+myear+"-"+(mmonth+1)+"-"+"01");/if(mmonth=12) tvtitle.settext(myear+"-"+mmonth+"-"+"01"+"-"+(myear+1)+"-&
31、quot;+1+"-"+"01"); else if(mmonth>12) mmonth=1; myear=myear+1; tvtitle.settext(myear+"-"+mmonth+"-"+"01"+"-"+myear+"-"+(mmonth+1)+"-"+"01"); /btnback=(button)findviewbyid(r.id.btnback);btnforward=(button)fin
32、dviewbyid(r.id.btnforward);buttonlistener buttonlistener =new buttonlistener();btnback.setonclicklistener(buttonlistener);btnforward.setonclicklistener(buttonlistener);class buttonlistener implements onclicklistener public void onclick(android.view.view v) switch(v.getid() case r.id.btnback:leftview
33、(); break; case r.id.btnforward:rightview(); break; private void rightview() calendar c = calendar. getinstance(timezone.gettimezone("gmt+08:00");mmonth +;tvtitle.settext(myear+"-"+mmonth+"-"+"01"+"-"+myear+"-"+(mmonth+1)+"-"+&quo
34、t;01");if(mmonth=12)tvtitle.settext(myear+"-"+mmonth+"-"+"01"+"-"+(myear+1)+"-"+1+"-"+"01");else if(mmonth>12) mmonth=1; myear=myear+1;tvtitle.settext(myear+"-"+mmonth+"-"+"01"+"-"+m
35、year+"-"+(mmonth+1)+"-"+"01"); if(mmonth<10) today = myear + "-" + "0"+mmonth; else today=myear+"-"+mmonth; cur=db.getamount(today);madapter.changecursor(cur);(simplecursoradapter) madapter).notifydatasetchanged();private void leftview()
36、 mmonth=mmonth-1;if(mmonth<1) mmonth=12; myear=myear-1;tvtitle.settext(myear+"-"+mmonth+"-"+"01"+"-"+(myear+1)+"-"+"1"+"-"+"01"); else if(mmonth>=12) mmonth=1; myear=myear+1;tvtitle.settext(myear+"-"+mmon
37、th+"-"+"01"+"-"+(myear+1)+"-"+"1"+"-"+"01"); elsetvtitle.settext(myear+"-"+mmonth+"-"+"01"+"-"+myear+"-"+(mmonth+1)+"-"+"01"); if(mmonth<10) today = myear +
38、"-" + "0"+mmonth; else today=myear+"-"+mmonth; cur=db.getamount(today); madapter.changecursor(cur);(simplecursoradapter) madapter).notifydatasetchanged();第五章 計步器的界面效果5.1用戶界面圖 5-1 用戶主界面5.2設置界面圖5-2 設置體重界面圖5-3 設置步長界面5.3歷史界面圖5-4 記錄歷史界面5.4日歷選擇界面圖5-5 日期選擇界面5.5用戶離開界面圖5-6 用戶離開界
39、面第六章 系統(tǒng)測試與分析6.1 測試過程1) 點擊應用圖標,如圖 6-1所示:圖6-1 圖為計步器主界面2) 計步器主界面開始記錄數(shù)據(jù),如圖 6-2所示:圖6-2 圖為計步器主界面3) 在主界面點擊暫停,如圖 6-3所示:圖6-3 圖為停止計步界面4) 繼續(xù)運動觀察主界面數(shù)據(jù)是否有變化,如圖 6-4所示:圖6-4 圖為停止計步后仍在運動界面5) 進入體重設置界面,如圖 6-5所示:圖6-5 圖為體重設置界面6) 進入步長設置界面,如圖 6-6所示:圖6-6 圖為步長設置界面7) 選擇日期界面,如圖 6-7所示:圖6-7 圖為日期選擇界面圖6-8 圖為日期選擇后的界面8) 歷史界面,如圖 6-9
40、所示:圖6-8 圖為歷史界面9) 歷史查詢界面 如圖 6-9所示:圖6-9 圖為歷史查詢界面10) 歷史刪除界面 如圖 6-10所示:圖6-10 圖為歷史刪除界面圖6-11 圖為歷史刪除后的界面11) 退出程序界面 如圖 6-12所示:圖6-12 圖為退出程序界面6.2 測試分析本軟件中幾個模塊的功能經(jīng)過測試,均測試通過,測試結果和最初的設計基本一致,所有的功能均能正常運行,軟件需要比較特殊的運行環(huán)境,首先手機的重力感應功能必須有,而且android系統(tǒng)的版本過低將不能使用。至此基于安卓平臺的手機計步器的設計基本完成。結 論經(jīng)過了數(shù)月的努力,android平臺手計步器軟件終于完成了。本軟件能實
41、現(xiàn)用戶對計步器的基本要求。方便用戶開啟關閉計步器,對運動情況和運動量可以直觀的從主界面獲取信息,設置選項中的智能人機交互平臺也可以明了的對用戶信息進行編輯,不需要復雜的操作不需要學習,一目了然。對于智能手機用戶來說,基于安卓平臺的手機計步器提供了一個快捷方便的平臺。為用戶提供隨時隨地的服務,節(jié)省用戶不必要的資金消耗與時間消耗是本軟件設計的一個宗旨,整個框架和細節(jié)的設計都是圍繞這個宗旨進行的,雖然整個軟件還不是很成熟,還有很多不足和需要改進的地方,或者還有很多信息提供不到位,例如我們可以加入音樂播放模塊,是用戶在運動的同時享受輕松快樂的環(huán)境,這些還需要日后慢慢優(yōu)化和改善,但是最初的設計都實現(xiàn)了。
42、在現(xiàn)在的功能基礎上本軟件可以進行擴展升級。本軟件最初設計的時候就是一個可以擴展的框架,所以為將來加入新的功能提供了很大的方便。本軟件雖然不是很強大,但是是我自己親手編寫的,開發(fā)一個能在時下最流行的軟件,使之順利的在平臺上運行是一件令人興奮的事情。把自己的想法一步一步地付諸實踐,最后成為一個真實的實物,被別人使用和稱贊,此時得到的成就感是尤為強烈的。參考文獻1 高煥堂.google android應用程序框架原理與程序設計.2 e2ecloud工作室著深入淺出google androidm北京:人民郵電出版社,2009-08-1.3 android api.chm 2010-04-10.4 王家
43、林大話企業(yè)級android應用開發(fā)實戰(zhàn)m電子工業(yè)出版社,2011,85 差沙.用android手機開發(fā)應用.程序員.2008.6 萬瑪,寧關永,韓相軍.嵌入式數(shù)據(jù)庫典型技術sqlite和berkeley的研究.微計算機信息,2006.7 馬越.andriod的架構與應用.北京:中國地質(zhì)大學,2008.8 高昂,馮大祥等.google android 開發(fā)入門與實踐.北京:人民郵電出版社,2009.9 張孝祥著java就業(yè)培訓教程m北京:清華大學出版社,2007.10 michael mcroberts著,楊繼志,郭敬譯. arduino從基礎到實踐m. 北京:電子工業(yè)出版社,2013.附 錄:
44、 1.啟動界面import android.app.activity;import android.annotation.suppresslint;import android.content.intent;import android.os.bundle;import android.os.handler;import android.os.message;/import android.support.v7.app.actionbaractivity;/import android.widget.imageview;import android.widget.textview;public
45、 class welcome extends activity /actionbaractivity 可以使用 activityprivate handler mhandler = new handler();imageview imageview;textview textview;int alpha = 150;int b = 0;suppresslint( "newapi", "handlerleak" )suppresswarnings("deprecation")overrideprotected void oncreate
46、(bundle savedinstancestate) super.oncreate(savedinstancestate);setcontentview(r.layout.welcome);imageview = (imageview) this.findviewbyid(r.id.imageview1);imageview.setimagealpha(alpha);new thread(new runnable() public void run() while (b < 2) try if (b = 0) thread.sleep(1000);b = 1; else thread.
47、sleep(50);updateapp(); catch (interruptedexception e) e.printstacktrace();).start();mhandler = new handler() overridepublic void handlemessage(message msg) super.handlemessage(msg);imageview.setalpha(alpha);imageview.invalidate();public void updateapp() alpha -= 5;if (alpha <= 0) b = 2;/漸變效果結束時啟動
48、主菜單的activityintent in = new intent(this, com.zyl11123ok.derun.view.class);startactivity(in);this.finish();mhandler.sendmessage(mhandler.obtainmessage();2.主界面代碼import java.util.calendar;import java.util.timezone;import android.app.activity;import android.app.alertdialog;import android.app.datepickerd
49、ialog;import android.app.datepickerdialog.ondatesetlistener;import android.content.componentname;import android.content.context;import android.content.dialoginterface;import android.content.intent;import android.content.serviceconnection;import android.content.sharedpreferences;import .uri;import an
50、droid.os.bundle;import android.os.handler;import android.os.ibinder;import android.os.message;import android.preference.preferencemanager;/import android.support.v7.app.actionbaractivity;/import android.util.log;import android.view.layoutinflater;import android.view.view.onclicklistener;import andro
51、id.widget.button;import android.widget.datepicker;import android.widget.edittext;import android.widget.imagebutton;import android.widget.textview;import android.widget.toast;import android.r.layout;import com.zyl11123ok.derun.r;import com.zyl.derun.database.database;public class view extends activit
52、y /使用actionbaractivit閃退不能運行y 可以使用 activityprivate static final string tag = "delightful"private button btnreset,btncancel,btnsave,btndate,btnnext,btnac;public database db;private textview tvdate,tvcount,tvmile,tvkaluli;private button imagebutton; private sharedpreferences msettings;private
53、 settings mpedometersettings; private utils mutils; private datepickerdialog dialog; private int mstepvalue; private float mdistancevalue; private boolean misrunning; private boolean mquitting = false; private int myear; private int mmonth; private int mday; private int step_length; int acctitemid=-1;/overrideprotected void oncreate(bundle savedinstancestate) super.oncreate(savedinstancestate); log.i(tag, "activity oncreate"); mstepvalue = 0; mutils = utils.getinstance(); setcontentview(r.layout.view_plus); btnreset=(button)findviewbyid(r.id.btnreset); btncancel=(button
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025農(nóng)村買地合同樣本
- 2025私營公司工程合同
- 2025年度農(nóng)村水塘水域環(huán)境保護與承包合同
- 二零二五年度環(huán)保產(chǎn)業(yè)散伙協(xié)議書3篇
- 2025年度公司與自然人共同開發(fā)項目合作協(xié)議3篇
- 2025年企業(yè)法人變更合同審查與合同效力確認服務3篇
- 二零二五年度公司股東內(nèi)部關于企業(yè)可持續(xù)發(fā)展戰(zhàn)略的協(xié)議書2篇
- 二零二五年度智慧城市運營合作出資協(xié)議模板
- 2025抵押貸款還款合同
- 二零二五年度農(nóng)村新建住宅不含材料包工協(xié)議
- 2024小英新人教版PEP三年級上冊全冊單元測試測評卷
- 供應鏈管理規(guī)章制度
- 2023非預應力鋼筒混凝土管
- 2024年3月八省八校T8第二次聯(lián)考語文試題及答案
- 程序設計基礎-C智慧樹知到期末考試答案章節(jié)答案2024年四川師范大學
- 駕駛員三年內(nèi)工作總結
- 廣東省深圳市羅湖區(qū)2023-2024學年二年級下學期期末考試數(shù)學試題
- 2023年第八屆“鵬程杯”六年級語文邀請賽試卷(初賽)
- 2023-2024學年成都市金牛區(qū)八年級上英語期末考試題(含答案)
- 更年期婦女健康管理專家共識1
- 青年你為什么要入團-團員教育主題班會-熱點主題班會課件
評論
0/150
提交評論