Android 自定義控件之 ZProgressBar
前言
最近我的個人項目中,有一個頁面需要大量用到 ProgressBar,但是每個 ProgressBar 的顏色是不確定的。
那么原生 ProgressBar 就無法滿足我的需求了,因為原生 ProgressBar 的樣式是根據 Drawable 來的,那么多顏色,豈不是需要創建 N 個 Drawable 文件了?并且該 ProgressBar 在 AndroidN 之前并沒有動畫效果,綜上所述,索性去 GayHub 看看有沒有好用的褲子。
看了一圈,發現有一個褲子挺好,繼承自 LinearLayout 實現,很強大,代碼也多,雖然能滿足我的需求,但是有些過剩啊。
我的需求也不是很大,其實直接繼承自 ProgressBar 就可以實現,不如自己造個輪子吧,既然 ProgressBar 是通過 Drawable 來指定樣式的,那么我就可以直接在代碼中生成 layout-list 和 shape 來實現一個可動態配置樣式的 ProgressBar 了。
廢話了一圈,闡述了下為什么有這個自定義控件。寫到這,發現自己廢話可真多啊。。。看這些話的時間都能理解完代碼了。。。因為代碼很簡單、也非常少。。。
預覽
使用
XML 中:
<com.github.airsaid.zprogressbar.widget.ZProgressBar
android:id="@+id/progressBar"
android:layout_width="match_parent"
android:layout_height="20dp"
android:max="100"
app:zpb_backgroundColor="#999999"
app:zpb_duration="300"
app:zpb_progressColor="@color/colorAccent"
app:zpb_radius="16dp"/>
代碼中:
ZProgressBar mProgressBar = (ZProgressBar) findViewById(R.id.progressBar);
mProgressBar.setAnimProgress(50);
屬性&方法
屬性名 | java方法 | 作用 |
---|---|---|
zpb_backgroundColor | setDefBackgroundColor(int color) | 設置背景顏色 |
zpb_progressColor | setProgressColor(int color) | 設置進度顏色 |
zpb_radius | setRadius(float radius) | 設置背景弧度 |
zpb_duration | setDuration(int duration) | 設置動畫時長 |
本文由用戶 Lhuajin 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!