丁小妮 劉萍
摘 要:目前Android手機(jī)廣泛使用,提出了一種基于Android的兒童成長曲線的研究,利用Android系統(tǒng)提供的SQLite數(shù)據(jù)庫存儲用戶身高體重?cái)?shù)據(jù),并且通過AChartEngine圖表引擎來顯示曲線。結(jié)合java語言與Eclipse開發(fā)環(huán)境實(shí)現(xiàn)客戶端程序。測試結(jié)果表明,該設(shè)計(jì)可以方便快捷的幫助用戶實(shí)現(xiàn)記錄和顯示功能。
關(guān)鍵詞:Android;兒童生長曲線;SQLite;AChartEngin
1 引言
針對父母越來越關(guān)注兒童的健康成長問題,但又不容易掌握孩子生長情況的需求,傳統(tǒng)的方式過于繁瑣,所以想到用手機(jī)軟件來滿足這一需求。目前在手機(jī)智能操作系統(tǒng)中, Android具有很強(qiáng)的擴(kuò)展性和互聯(lián)性,并且基于Android終端的研究前景廣闊。
2 系統(tǒng)的總體設(shè)計(jì)
用戶啟動(dòng)軟件后,輸入兒童的姓名、性別、身高或者體重,輸入的數(shù)據(jù)存入SQLite數(shù)據(jù)庫中。點(diǎn)擊菜單中的身高或體重曲線命令會(huì)調(diào)用AChartEngine來進(jìn)行曲線的顯示.顯示界面中顯示用戶曲線與正常曲線,以達(dá)到對比效果,如果出現(xiàn)偏差,可以參考幫助信息來及時(shí)做出糾正。
2.1 用戶界面設(shè)計(jì)
用戶的界面主要有主菜單界面、數(shù)據(jù)輸入界面、兒童身高和體重的顯示界面,幫助界面,利用Eclipse開發(fā)環(huán)境提供的布局管理器完成。
2.2 數(shù)據(jù)存儲設(shè)計(jì)
SQLite一個(gè)非常流行的嵌入式數(shù)據(jù)庫,它支持SQL語言,并且只利用很少的內(nèi)存就能達(dá)到很好的性能。Android不自動(dòng)提供數(shù)據(jù)庫,如果要在Android應(yīng)用程序中使用SQLite,必須自己創(chuàng)建數(shù)據(jù)庫,然后創(chuàng)建表、索引,填充數(shù)據(jù)。
本系統(tǒng)中主要有兩部分?jǐn)?shù)據(jù)需要存儲,一個(gè)是身高的數(shù)據(jù),另一個(gè)是體重的數(shù)據(jù)。選擇SQLite來存儲數(shù)據(jù)。建立數(shù)據(jù)庫Babychart.db,并且建立Table_height和Table_weight兩張表分別用來存儲身高和體重?cái)?shù)據(jù)。
3 系統(tǒng)的實(shí)現(xiàn)
用戶將輸入的數(shù)據(jù)存入數(shù)據(jù)庫中,在圖標(biāo)顯示時(shí)從數(shù)據(jù)庫中將數(shù)據(jù)取出,利用AChartEngine顯示身高與體重曲線。
3.1 數(shù)據(jù)存儲的實(shí)現(xiàn)
Android通過繼承SQLiteOpenHelper類來幫助創(chuàng)建數(shù)據(jù)庫,具體如下:DBhelper(DynamicChar.this,“Babychart_db”,null,1)
SQLiteDatebase db=dbHelper.getWritableDatebase();
建立了數(shù)據(jù)庫后,在數(shù)據(jù)庫中建立Table_height和Table_weight兩張表來存儲身高和體重?cái)?shù)據(jù),調(diào)用SQLiteDatabase 的execSQL()方法來執(zhí)行,如下:
String sql1=“create table Table_height(id INTEGER PRIMARY KEY AUTOINCREMENT,x double,y double)”;
String sql2=“create table Table_weight(id INTEGER PRIMARY KEY AUTOINCREMENT,x double,y double)”;
db.exeSQL(sql1);
db.exeSQL (sql2);
創(chuàng)建了數(shù)據(jù)庫和表以后,使用SQLiteDatabase對象的 insert(),update(),delete()等方法為數(shù)據(jù)庫表實(shí)現(xiàn)增刪改等操作。
3.2 利用Achartengine顯示曲線
AChartEngine是一個(gè)針對Android程序開發(fā)的開源圖表生成類庫。在本軟件中AChartEngine的主要作用是從數(shù)據(jù)庫中獲取數(shù)據(jù),建立坐標(biāo),并且顯示。
AChartEngine提供的ChartFactory包幫助曲線數(shù)據(jù)的獲取與顯示。
從數(shù)據(jù)庫中獲取數(shù)據(jù):
doublex[i]=cur.getInt(cur.getColumnIndex("x"));
doubley[i]=cur.getInt(cur.getColumnIndex("y"));
BuildDataset()方法用來進(jìn)行數(shù)據(jù)的構(gòu)建:
XYMultipleSeriesDataset dataset = buildDataset(titles, lx, ly);
BuildRenderer()方法用來實(shí)現(xiàn)曲線的顯示:
XYMultipleSeriesRenderer renderer = buildRenderer(colors, styles, true);
SetChartSettings()方法用來實(shí)現(xiàn)曲線的設(shè)置:
setChartSettings(renderer,"兒童成長曲線","X", "Y", 0,12,0,50,Color.WHITE,Color.WHITE);
顯示:
View chart=ChartFactory.getLineChartView(this, dataset,renderer);
setContentView(chart);
4 結(jié)束語
本系統(tǒng)利用了目前最流行的Android智能平臺,充分考慮到產(chǎn)品的實(shí)際需求,有針對性的提出了系統(tǒng)的設(shè)計(jì)開發(fā),經(jīng)過對系統(tǒng)的測試,整個(gè)系統(tǒng)穩(wěn)定可靠,方便快捷的實(shí)現(xiàn)了兒童成長過程中身高體重的曲線記錄和顯示功能。
[參考文獻(xiàn)]
[1]吳其慶.Eclipse程序設(shè)計(jì)實(shí)例教程[M].北京:冶金工業(yè)出版社,2007:30-211.
[2]辛運(yùn)幃,饒一梅,馬素霞.Java程序設(shè)計(jì)(第二版)[M].北京:清華大學(xué)出版社,2006:30-102.
[3]王世江,蓋索林.Android開發(fā)入門指南(第2版)[M].北京:人民郵電出版社,2009.11:21-270.