作者簡介? 原創(chuàng)微信公眾號郭霖 WeChat ID: guolin_blog
又到周五啦,提前祝大家周末愉快批钠!
本篇來自smily的投稿均澳,分享了一個自定義折線圖控件曲掰,效果很不錯,感興趣的朋友可以看一看胎许。
smily的博客地址:
http://blog.csdn.net/qq_20521573
正文
首先看下要實(shí)現(xiàn)的效果圖峻呛,動態(tài)圖片錄制效果不好,漸變顏色沒有完全顯示出來辜窑,以至于下半部分漸變色變成了白色钩述。
折線圖的繪制主要有一下幾個步驟。
一穆碎、定義 LineChartView類 并繼承 View牙勘。
二、添加自定義屬性所禀。以在 value目錄 下創(chuàng)建 attrs.xml 文件,文件中我們可以定義一些用到的屬性方面,比如折線顏色、字體大小等屬性色徘。文件內(nèi)容如下:
接下來在 LineChartView 的構(gòu)造方法中解析自定義屬性的值并做相應(yīng)的處理恭金。在構(gòu)造方法里還初始化了 漸變顏色、折線數(shù)據(jù)的List集合 以及 初始化畫筆 等操作代碼如下:
另外褂策,折現(xiàn)數(shù)據(jù)需要實(shí)體類横腿,實(shí)體類可直接添加到 LineChartView 內(nèi)部。如下:
三斤寂、初始化畫筆和路徑耿焊。代碼如下:
四、重寫 onLayout方法扬蕊。在 onLayout方法 中獲取控件的寬高搀别、初始化原點(diǎn)坐標(biāo)以及設(shè)置控件的背景。代碼如下:
五尾抑、重寫onDraw方法歇父。在onDraw方法中完成折線圖的繪制蒂培。代碼如下:
折線圖的繪制可以分三部分:1.繪制坐標(biāo)軸 2.繪制View上的文字 3.繪制折線。
1.坐標(biāo)軸繪制的是第一象限榜苫,即左下角的點(diǎn)為原點(diǎn)护戳。繪制坐標(biāo)軸代碼如下:
2.繪制文字,代碼如下:
3.繪制折線及漸變填充
六垂睬、折線圖添加動畫媳荒。
1.首先需要計算動畫的進(jìn)度,因此在 LineChartView 中定義成員變量 mProgress,并添加以下方法:
2.接下來設(shè)置動畫效果驹饺,代碼如下:
3.添加開啟動畫的方法:
至此钳枕,折線圖的繪制已經(jīng)全部完成。最后還可以添加get() set()方法赏壹,暴露出屬性接口鱼炒,以供外部調(diào)用。代碼就不再貼出來了蝌借。
七昔瞧、使用LineChartView
1.在布局文件中添加 LineChartView,可設(shè)置折線顏色、字體顏色菩佑、等屬性自晰,如下:
2.在 Activity 中為 LineChartView 設(shè)置數(shù)據(jù),也可以通過代碼為其設(shè)置屬性稍坯。
項(xiàng)目地址:
https://github.com/zhpanvip/LineChartView
文章原創(chuàng)作者GuoLin 書籍推薦
郭林大神原創(chuàng)android 書籍:《第一行代碼 android》