【摘要】本文研究了在Android開發(fā)平臺下日程記事器的設計與實現(xiàn)過程,實現(xiàn)對日程記事進行增刪改查、自定義鬧鈴振動定時提醒功能、拍照記事和錄像記事等功能,并且使用google的語音搜索功能添加記事,為用戶提供方便快捷的操作。
【關鍵詞】Android平臺;日程記事器;手機軟件
1.引言
隨著智能手機技術的不斷發(fā)展,它將成為人們?nèi)粘I钣涗浫粘瘫夭豢缮俚脑O備。因此,Android平臺記事器將會有很大的發(fā)展空間,WNotes日程手機應用軟件就是其中之一。它的設計開發(fā)是為了最大便捷的方便人們記錄日常生活中一些重要的事情。WNotes日程除了具備最基本的增刪改查功能外,還擁有別具特色的鬧鈴實時提醒功能和多媒體拍照記事功能。當然用戶也可以根據(jù)自己的需要對日程記錄進自定義排序,便于閱讀。本文將基于Android平臺詳述如何設計并實現(xiàn)一款功能完備的日程記事器。
2.系統(tǒng)總體設計
2.1 功能設計
通過對智能手機用戶的問卷調(diào)查以及參照現(xiàn)有智能機中記事器的功能,本文將整個記事器功能設計如圖1所示:
2.2 數(shù)據(jù)庫訪問設計
數(shù)據(jù)庫選用SQLite,通過使用這些API便可實現(xiàn)數(shù)據(jù)庫操作。記事器要經(jīng)常進行數(shù)據(jù)庫操作,所以編寫了DBAccess和DBUtil兩個類進行專門的數(shù)據(jù)庫操作,設計一個SQLiteOpenHelper類來對數(shù)據(jù)庫進行基本操作,以實現(xiàn)數(shù)據(jù)庫的訪問等。
3.記事器的具體實現(xiàn)
3.1 主界面模塊實現(xiàn)
主界面采用Android自帶的ListView控件顯示,并且繼承ListActivity父類,這樣可以很方便地顯示日程記事,在記事為空的時候顯示No data沒有數(shù)據(jù),在記事不為空的時候顯示記事的ListView列表界面。在整個主界面的最上方添加兩個ImageView的按鈕,一個是添加記事,另一個是查詢記事,可以方便用戶操作。通過重寫父類的onCreateOptionsMenu(Menu menu)方法創(chuàng)建menu菜單,點擊menu菜單,彈出“設置”、“新建”、“排序”、“搜索”菜單選項。并且為每一個menu菜單設置它的OnMenuItemClickListener自定義監(jiān)聽器,實現(xiàn)點擊處理,直接調(diào)用父類公共的overridePendingTransition(int enterAnim,int exitAnim)方法實現(xiàn)動畫跳轉頁面效果。
3.2 記事功能的實現(xiàn)
可以點擊文件排序右邊的“+”號給指定文件添加記事,也可以點擊界面上方的新建按鈕添加記事,還可以點擊menu菜單》新建添加記事,添加記事界面如圖2-圖5所示:
在新建記事界面使用自定義繼承EditText父類,可以對記事正文進行添加,并且記事標題自動匹配記事正文,也可以自己添加。調(diào)用Google提供的語音搜索可以很方便的對記事進行添加記事,減去了手動書寫的麻煩,不過前提是手機里有安裝google的語言搜索軟件,并且網(wǎng)絡連接通暢。還可以進行拍照和錄像記事,內(nèi)容以ImageView的形式顯示在界面上,照片和錄像保存在手機的sd卡的/sdcard/WNote/新建文件夾下。錄像采用縮略圖顯示,布局采用FrameLayout幀布局方式,點擊上層的播放按鈕可以播放錄像。直接點擊返回按鈕就可以保持了。
3.3 自定義鬧鈴或振動提醒功能實現(xiàn)
自定義提醒功能界面,采用自定義日歷完成自定義提醒設置,繼承View父類,重寫父類里的onDraw方法對日歷進行繪制,Android系統(tǒng)android.graphics包里提供了很多類為我們方便地繪制自定義圖形,使用android.graphics.Paint繪制畫筆,設置畫筆的顏色,粗細等屬性,android.graphics.Path繪制日歷的邊框路徑,然后通過Canvas畫布將整個日歷繪制在手機屏幕上顯示。需要注意的是自定義提醒日期必須是在當前日期之后的時間,否則會彈出“日期選擇不正確”無法點擊設置鍵完成設置提醒。可以在“設置與幫助”里面設置開啟聲音與震動功能來自定義提醒方式。
3.4 自定義提醒功能模塊實現(xiàn)
定時提醒功能模塊是在上面設置完成了提醒時間的前提下進行的。使用的是AlarmMan-ager類提供鬧鈴,AlarmManager的作用文檔中的解釋是:在特定的時刻為我們廣播一個指定的Intent。簡單的說就是我們設定一個時間,然后在該時間到來時,AlarmManager為我們廣播一個我們設定的Intent。并且我們采用的是RTC_WAKEUP類型的鬧鐘,可以在指定的時刻,發(fā)送廣播,并喚醒設備。彈出一個自定義的界面,使用系統(tǒng)默認的鬧鈴聲加振動提醒用戶,前提是用戶自定義開啟聲音和震動功能,效果圖如圖6-圖7所示。
注:自定義界面顯示了用戶所在的城市,所在城市的天氣溫度(在接下來的部分介紹)。然后有“刪除提醒”、“任務完成”、“延遲完成”。還可以下滑隱藏提醒界面。點擊“延遲完成”按鈕動畫彈出延遲時長。本部分功能采用了多種動畫特性相結合,方便用戶操作。
3.5 百度定位和天氣查詢功能實現(xiàn)
百度定位功能的實現(xiàn)調(diào)用的是百度的locSDK_3.3.jar包,可以在百度開發(fā)者平臺下載,主要是設置定位參數(shù),在這里采用的直接是網(wǎng)絡定位方式,不需要開啟GPS就可以直接定位,定位到所在的城市。然后根據(jù)定位得到的城市去查詢天氣信息。在這里調(diào)用中國天氣查詢,直接使用Http協(xié)議獲取查詢數(shù)據(jù),獲取到json格式的數(shù)據(jù),然后對數(shù)據(jù)進行解析,獲取天氣、溫度和天氣小圖標代號。
4.結束語
該日程記事器以Java語言作為編程基礎,基于Android系統(tǒng)平臺,借助Google公司的Android SDK作為運行環(huán)境,并在Eclipse IDE開發(fā)環(huán)境下進行開發(fā)設計,是一款基于Android2.3系統(tǒng)的手機應用軟件。主要的特色功能有百度定位、天氣實時每日更新、自定義每日提醒鬧鐘和完美的日程記事提醒功能,支持拍照、錄像記事和語音搜索功能。本文闡述了整個設計與開發(fā)過程,可為手機軟件開發(fā)愛好者提供借鑒和參考。
參考文獻
[1]李金霖,賴超,龍曦,吳林志.基于Android平臺的手機日程管理系統(tǒng)[J].計算機與數(shù)字工程,2011,03.
[2]張正政,林耀榮.基于Android系統(tǒng)的影音播放器開發(fā)[J].現(xiàn)代電子技術,2011,02.
[3]耿東久,索岳,陳渝,文軍,呂勇強.基于Android手機的遠程訪問和控制系統(tǒng)[J].計算機應用,2011,02.
[4]代敏.基于Android平臺下手機定位程序的設計及實現(xiàn)[J].計算機與數(shù)字工程,2012, 04.
作者簡介:
李琳,女,實驗師,主要研究方向:計算機應用技術。
賴路燕,女,講師,主要研究方向:企業(yè)管理和企業(yè)信息化。