天天看點

自定義View,又一種進度條的呈現,CircleProgressView使用解析

話不多說,先上效果圖

自定義View,又一種進度條的呈現,CircleProgressView使用解析
自定義View,又一種進度條的呈現,CircleProgressView使用解析

循環旋轉的狀态

自定義View,又一種進度條的呈現,CircleProgressView使用解析
自定義View,又一種進度條的呈現,CircleProgressView使用解析
自定義View,又一種進度條的呈現,CircleProgressView使用解析

一個sample包,一個lib包。lib包裡面其實隻有一個累,很多内容都在素材檔案裡,比較建議把内容複制出來,貼到自己的項目中

主類:

分析:

一個circleprogressview自定義控件,2個seekbar來控制進度條的百分比,以及長度,2個switch用于切換顯示内容,和一堆顯示的textview

可以在onstart()調用setvalue()方法,來給進度條指派。而内部實作也是handle傳參的一系列操作

在handlemessage方法裡又調用setvalue(msg, circleview);

最終實作的是setvalue(message msg, circleprogressview _circleview)方法

是以,你在代碼操作的過程中,可以肆意調用setvalue()方法,不用在意會對其他部分的内容産生影響。

sample代碼裡的 mseekbarspinnerlength.setmax(360);就等于mcircleview.setspinningbarlength(seekbar.getprogress());給環狀的spinningbar傳一個int的值讓他呈現出一個角度為seekbar.getprogress()/360的圖形。當然你傳入的數值<360時,seekbar拉到底了也不會成為整圓 那麼>360的話隻要到達360圓就已經呈現出來了,多餘的值将沒有效果。

效果如圖:

自定義View,又一種進度條的呈現,CircleProgressView使用解析

然後我們來看下核心類circleprogressview

然後洋洋灑灑1300+行的代碼,我就不一一分析了,一些是畫的一些是用的,亟亟就不做過多解釋了,自己可以看源碼,為了用那我們來看下一些配置

對圖形的整個大小啊,半徑啊,字型的大小啊等進行設定。

顔色的設定,圓的顔色,字的顔色等

總體來說,使用起來還是很友善的,附上源碼大家自己看吧

http://yunpan.cn/cdlffuxtanydr 通路密碼 6c65

繼續閱讀