仿MIUI音量變化環形進度條實現

Android中使用環形進度條的業務場景其實蠻多的,好比下載文件的時候使用環形進度條,會給用戶眼前一亮的感受;再好比我大愛的MIUI系統,它的音量進度條就是使用環形進度條,盡顯小米"爲發燒而生"的宗旨。今天就爲你們揭開那些高大上設計背後的故事,讓咱們也來實現如此酷炫的效果。 android

其實環形進度條只是一個稍稍複雜點的自定義控件,看過前段時間《Android自定義控件》系列的同窗,理解起來會更加容易。還沒看過的同窗,出門右轉,查看歷史消息,再回頭看今天的內容,會更加容易上手。 git

1、定義自定義屬性 github

2、聲明成員變量 canvas

注:對於自定義控件的理解,其實先看它的成員變量是最靠譜的,理解了成員變量就等於理解了這個控件要實現的功能和所實現的內在邏輯。好比昨天咱們分享Launcher的那個自定義控件類只變量都100多行,不先靜下心來去理解這些變量,你是不大可能懂得我實現的方法。不理解聲明變量的意義就盲目去閱讀源碼每每得不償失,切記。 微信

3、獲取自定義屬性的值 佈局

4、邏輯實現:繪圖,在onDraw中使用canvas繪製 spa

5、佈局使用 .net

最後看下效果。 設計

    

看到了吧,實現小米系統那個環形進度條就是這麼的簡單。只不過咱們是在圓形中間繪製的是進度值,小米繪製的是音量圖標,只須把canvas.drawText(textxy, paint)換成canvas.drawBitmap(bitmap, left, top, paint),就一個參數的差別罷了。有興趣的朋友,能夠自行實現。 get

好了,今天的乾貨都到此爲止。

源碼地址:https://github.com/JackCho/RoundProgressBar

若是以爲對你有所幫助,歡迎你們訂閱個人微信公衆帳號——Android乾貨分享(ID:android_share)。下面是微信的二維碼,爲你提供及時高質的Android乾貨。技術交流QQ羣:318588906,歡迎你們加羣,共同探討下Android和Java技術,一塊兒壯大咱們的微信乾貨分享社區。

相關文章
相關標籤/搜索