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