魏艷鳴
摘要:隨著3G/4G/5G網(wǎng)絡(luò)的發(fā)展,越來越多的產(chǎn)業(yè)向智能化方向發(fā)展,智能交通、智能農(nóng)業(yè)等系統(tǒng)如雨后春筍般出現(xiàn)。在這些系統(tǒng)中必不可少的都有從傳感器中獲取數(shù)據(jù)這一功能,用圖形化工具顯示這些數(shù)據(jù)可以達(dá)到一目了然的效果。該文淺談Android中使用自定義View畫折線圖顯示數(shù)據(jù)的應(yīng)用技巧。
關(guān)鍵詞:Android;View;onDraw
中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2018)29-0075-02
1 概述
在網(wǎng)絡(luò)傳輸速度大大提高的今天,越來越多的產(chǎn)業(yè)向智能化方向發(fā)展,智能交通、智能農(nóng)業(yè)等系統(tǒng)如雨后春筍般出現(xiàn),用戶通過手機(jī)終端可以使用這些系統(tǒng)。如在智能交通系統(tǒng)中,可以實(shí)時(shí)查看當(dāng)前環(huán)境的PM2.5值、溫度、路燈強(qiáng)度等數(shù)據(jù),這些數(shù)據(jù)往往通過圖形化工具顯示給用戶,提升了用戶的使用體驗(yàn)感;本文主要目的是淺談Android中使用自定義View畫折線圖顯示數(shù)據(jù)的應(yīng)用技巧。
2 Android中的自定義View
在開發(fā)過程中,經(jīng)常會(huì)遇到系統(tǒng)中提供的控件無法滿足產(chǎn)品的設(shè)計(jì)需求,這時(shí)可能就需要考慮使用自定義的View來實(shí)現(xiàn)產(chǎn)品的設(shè)計(jì)了,Android中提供了android.view.View類實(shí)現(xiàn)應(yīng)用程序界面的繪制。自定義View時(shí)往往只需重寫兩個(gè)函數(shù):onMeasure()、onDraw()。onMeasure負(fù)責(zé)對(duì)當(dāng)前View的尺寸進(jìn)行測(cè)量,onDraw負(fù)責(zé)把當(dāng)前這個(gè)View繪制出來,而在繪制圖形圖像時(shí)還需要Paint類及Canvas類。
2.1 Paint類
Paint類[1]代表畫筆,用來描述圖形的顏色和風(fēng)格,如線寬、顏色、透明度和填充效果等信息。使用Paint類時(shí),首先要?jiǎng)?chuàng)建它的實(shí)例對(duì)象,然后通過該類提供的方法來更改Paint對(duì)象的默認(rèn)設(shè)置。Paint類提供的常用方法如表1所示。
下面一段代碼定義了一畫筆,并指定該畫筆的顏色為紅色。
2.2 Canvas類
Canvas類代表畫布,通過使用該類提供的方法,可以繪制各種圖形,如直線、矩形、圓形等。Canvas提供的常用繪圖方法如表2所示。
2.3 自定義View及使用
自定義View視圖時(shí),需要?jiǎng)?chuàng)建一個(gè)類繼承View類,添加其構(gòu)造方法,并重寫其onDraw()方法,如下面代碼所示,在自定義的View中畫一條直線。
4總結(jié)
本文利用自定義View實(shí)現(xiàn)了簡(jiǎn)單的折線圖的畫法,下一步,作者會(huì)研究在Android平臺(tái)上開源的第三方統(tǒng)計(jì)圖表庫(kù),如MPAndroidChart[2]、AChartEngine等,可以繪制樣式復(fù)雜、豐富的各種統(tǒng)計(jì)圖表,使用第三方插件會(huì)簡(jiǎn)化畫圖難度。
參考文獻(xiàn):
[1] 黑馬程序員.Android移動(dòng)開發(fā)基礎(chǔ)案例教程[M].北京:人民郵電出版社,2017:139-146.
[2] Android圖表控件MPAndroidChart的簡(jiǎn)單介紹(MPAndroidChart3.0).(2017-08-24).https://blog.csdn.net/ww897532167/article/details/77334345.