郭強(qiáng) 吳朝霞
摘要:Android作為目前被廣泛使用的應(yīng)用程序開(kāi)發(fā)技術(shù),被應(yīng)用到了各種移動(dòng)終端設(shè)備上,由于其具有使用方便、開(kāi)源、硬件平臺(tái)豐富的特點(diǎn),再加上Google公司的各方面的支持,使得Android深受開(kāi)發(fā)者的青睞。該文通過(guò)對(duì)Android技術(shù)的特點(diǎn)和應(yīng)用進(jìn)行分析,并結(jié)合Android系統(tǒng)的SQLite存儲(chǔ),設(shè)計(jì)和實(shí)現(xiàn)了移動(dòng)終端上成長(zhǎng)日記系統(tǒng)應(yīng)用,包含了成長(zhǎng)筆記、成長(zhǎng)相冊(cè)、成長(zhǎng)基金等功能。
關(guān)鍵詞:Android;成長(zhǎng)日記;相冊(cè);SQLite
中圖分類(lèi)號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2016)36-0081-01
由于移動(dòng)終端設(shè)備的普及和Android技術(shù)的流行,使得Android技術(shù)得到了廣泛的應(yīng)用,Android應(yīng)用也漸漸成為當(dāng)前人們生活中不可缺少的一部分。為了能夠幫助家長(zhǎng)能夠更好的記錄孩子的成長(zhǎng)過(guò)程,本文設(shè)計(jì)實(shí)現(xiàn)了基于Android的成長(zhǎng)日記系統(tǒng),可以幫助家長(zhǎng)在孩子出生之后和成長(zhǎng)的過(guò)程中記錄信息,寫(xiě)下每天的心情和筆記,同時(shí)使用設(shè)備的拍照功能制作成長(zhǎng)相冊(cè),以及實(shí)現(xiàn)對(duì)成長(zhǎng)過(guò)程中的日常開(kāi)銷(xiāo)和上學(xué)期間的支出和收入進(jìn)行詳細(xì)的記錄和分類(lèi)整理。對(duì)圖片的引入貫穿了整個(gè)系統(tǒng),使得所有的記錄都能夠圖文并茂。同時(shí)利用Android的網(wǎng)絡(luò)編程技術(shù)實(shí)現(xiàn)對(duì)數(shù)據(jù)的網(wǎng)絡(luò)存儲(chǔ),使用Android系統(tǒng)自帶的SQLite數(shù)據(jù)庫(kù)系統(tǒng)實(shí)現(xiàn)數(shù)據(jù)的本地存儲(chǔ)。使成長(zhǎng)信息的記錄數(shù)字化、網(wǎng)絡(luò)化,更加的便捷有效,為家長(zhǎng)和孩子的成長(zhǎng)帶來(lái)歡樂(lè),同時(shí)也會(huì)成為美好的記憶。
1 成長(zhǎng)日記系統(tǒng)的設(shè)計(jì)
成長(zhǎng)日記系統(tǒng)用于對(duì)孩子的成長(zhǎng)過(guò)程信息進(jìn)行記錄,面向的用戶是家長(zhǎng)。為了能夠?qū)Τ砷L(zhǎng)過(guò)程進(jìn)行較全面的信息記錄,系統(tǒng)的設(shè)計(jì)主要分為了成長(zhǎng)筆記模塊,成長(zhǎng)相冊(cè)模塊,成長(zhǎng)基金模塊和系統(tǒng)模塊4部分組成。由于每個(gè)系統(tǒng)對(duì)應(yīng)了一個(gè)設(shè)備終端,一個(gè)終端也就意味著一個(gè)用戶,所以系統(tǒng)不需要設(shè)計(jì)用戶的注冊(cè)和登錄模塊。
1) 成長(zhǎng)日記:實(shí)現(xiàn)日記的書(shū)寫(xiě)功能,采用所寫(xiě)即所得的方式,可以進(jìn)行文字記錄和手工繪圖,同時(shí)實(shí)現(xiàn)對(duì)筆觸的顏色和類(lèi)型的選擇。實(shí)現(xiàn)日記的多頁(yè)記錄和翻頁(yè)功能。
2) 成長(zhǎng)相冊(cè):實(shí)現(xiàn)相冊(cè)的制作功能,對(duì)照片進(jìn)行導(dǎo)入,編輯,組合的功能,并能對(duì)制作完成的相冊(cè)進(jìn)行保存、瀏覽的功能。
3) 成長(zhǎng)基金:用于記錄成長(zhǎng)過(guò)程的基本信息的記錄,資金的支出和收入以及核算的功能,同時(shí)可以插入圖片,進(jìn)行更生動(dòng)的記錄。
4) 系統(tǒng)功能:實(shí)現(xiàn)對(duì)系統(tǒng)的設(shè)置。
2 系統(tǒng)實(shí)現(xiàn)關(guān)鍵技術(shù)
2.1 手寫(xiě)功能的實(shí)現(xiàn)
在Android中提供了關(guān)于繪圖的API可供使用,在View類(lèi)中,提供了虛函數(shù)onDraw(Canvas canvas)實(shí)現(xiàn)對(duì)觸摸屏觸摸動(dòng)作的響應(yīng),因此在類(lèi)的構(gòu)建中需要繼承View類(lèi),并實(shí)現(xiàn)onDraw函數(shù),同時(shí)提供了onTouch函數(shù)用以響應(yīng)觸摸屏上的移動(dòng)操作,根據(jù)事件類(lèi)型分為了按下:ACTION_DOWN、移動(dòng)ACTION_MOVE和抬起ACTION_UP這三個(gè)動(dòng)作,可以很好的反映出用戶在觸摸屏上的動(dòng)作效果,利用畫(huà)布類(lèi)canvas的drawPaint函數(shù)實(shí)現(xiàn)筆跡的繪制,同時(shí)利用invalidate函數(shù)實(shí)現(xiàn)對(duì)界面的刷新。
此外在Android中提供了一個(gè)重要的類(lèi)Path可以實(shí)現(xiàn)對(duì)觸摸路徑的保存,利用canvas的drawPath函數(shù)可以有效地繪制觸摸路徑。
2.2 照片的編輯
眾所周知,圖片擁有較大的存儲(chǔ)體積,因此在存儲(chǔ)和處理上都會(huì)有一些困難,可能會(huì)出現(xiàn)系統(tǒng)響應(yīng)緩慢的問(wèn)題,因此需要首先對(duì)用戶提供的圖片進(jìn)行處理。在Android中BitmapFactory.Options提供了有效的解決方案,利用BitmapFactory.decodeStream方法可以對(duì)圖片流進(jìn)行有效的編碼,inJustDecodeBounds和inPurgeable屬性可以使開(kāi)發(fā)者更改圖片的體積。
對(duì)圖片的旋轉(zhuǎn)利用了Matrix類(lèi)的相關(guān)功能,matrix.preRotate函數(shù)可以實(shí)現(xiàn)對(duì)圖片設(shè)置任意的旋轉(zhuǎn)角度,matrix.postScal函數(shù)可以實(shí)現(xiàn)用戶在觸摸屏上對(duì)圖片的縮放功能。
2.3 數(shù)據(jù)的保存
首先是對(duì)圖片的保存,由于圖片的體積原因,所以直接將圖片保存本地存儲(chǔ)空間的指定目錄下,這就使用到了File類(lèi)的相關(guān)操作。
對(duì)數(shù)據(jù)的保存需要使用到Android系統(tǒng)自帶的SQLite數(shù)據(jù)庫(kù)。SQLiteDatabase類(lèi)用以實(shí)現(xiàn)數(shù)據(jù)庫(kù)對(duì)象,提供了openOrCreateDatabase函數(shù)打開(kāi)數(shù)據(jù)庫(kù),以及insert、delete、update、query函數(shù)實(shí)現(xiàn)數(shù)據(jù)庫(kù)信息的增刪改查功能,同時(shí)Context提供了數(shù)據(jù)庫(kù)操作的上下文信息。
3 系統(tǒng)的實(shí)現(xiàn)
1)手寫(xiě)筆記實(shí)現(xiàn)插圖和手寫(xiě)輸入的功能,如圖1所示。實(shí)現(xiàn)了對(duì)手寫(xiě)筆跡的數(shù)據(jù)庫(kù)保存,和日記背景圖片和插圖的文件保存。
2)實(shí)現(xiàn)成長(zhǎng)相冊(cè)的功能菜單,實(shí)現(xiàn)圖片的導(dǎo)入,導(dǎo)出,編輯和瀏覽功能。如圖2所示。
4 結(jié)束語(yǔ)
系統(tǒng)結(jié)合Android技術(shù)和開(kāi)發(fā)平臺(tái)的特點(diǎn),設(shè)計(jì)了滿足用戶記錄孩子成長(zhǎng)信息的移動(dòng)端應(yīng)用程序,主要實(shí)現(xiàn)了手寫(xiě)筆記,成長(zhǎng)相冊(cè)等主要功能,在數(shù)據(jù)的存儲(chǔ)上即使用到了文件的存儲(chǔ)和讀取功能,也是用到了SQLite的數(shù)據(jù)庫(kù)操作。
參考文獻(xiàn):
[1] 王曉辰.基于Andorid平臺(tái)掌上求職通的設(shè)計(jì)與實(shí)現(xiàn)[D].長(zhǎng)春: 吉林大學(xué),2016.
[2] 項(xiàng)亮.基于移動(dòng)平臺(tái)的圖片制作系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[D]. 上海: 上海交通大學(xué),2013.
[3] 宋小倩,周東升.基于Android平臺(tái)的應(yīng)用開(kāi)發(fā)研究[J].軟件導(dǎo)刊,2011(2).