自定義View之顏色漸變折線圖

作者簡介? 原創(chuàng)微信公眾號(hào)郭霖 WeChat ID: guolin_blog

又到周五啦,提前祝大家周末愉快!

本篇來自smily的投稿,分享了一個(gè)自定義折線圖控件,效果很不錯(cuò),感興趣的朋友可以看一看。

smily的博客地址:

http://blog.csdn.net/qq_20521573

正文

首先看下要實(shí)現(xiàn)的效果圖,動(dòng)態(tài)圖片錄制效果不好,漸變顏色沒有完全顯示出來,以至于下半部分漸變色變成了白色。


折線圖的繪制主要有一下幾個(gè)步驟。

一、定義 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.繪制折線及漸變填充

六、折線圖添加動(dòng)畫。

1.首先需要計(jì)算動(dòng)畫的進(jìn)度,因此在 LineChartView 中定義成員變量 mProgress,并添加以下方法:

2.接下來設(shè)置動(dòng)畫效果,代碼如下:

3.添加開啟動(dòng)畫的方法:

至此,折線圖的繪制已經(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》

淘寶鏈接:

https://s.click.taobao.com/t?e=m%3D2%26s%3DgKUfuKdAZKocQipKwQzePOeEDrYVVa64K7Vc7tFgwiHjf2vlNIV67p2n%2BQBNMyE6Rku8%2Bpj6eJall3bs%2B3NRhNHnsKI%2BqxhyM0iVZhTFBom4YIorMPnmg8G0g2OJi%2FzmXHfenomYtn5EW9vzeG8LzfPUwktUBEmkxg5p7bh%2BFbQ%3D&pvid=10_106.6.161.154_3367_1490163222155

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容