[摘要]本文介绍Android三种实现自定义ProgressBar的方式,并提供详细的示例代码供参考。
一、通过动画实现
定义res/anim/loading.xml如下:
| 1 | <?xml version="1.0" encoding="UTF-8"?> |
| 2 | <animation-list android:oneshot="false" |
| 3 | xmlns:android="http://schemas.android.com/apk/res/android"> |
| 4 | <item android:duration="150" android:drawable="@drawable/loading_01" /> |
| 5 | <item android:duration="150" android:drawable="@drawable/loading_02" /> |
| 6 | <item android:duration="150" android:drawable="@drawable/loading_03" /> |
| 7 | <item android:duration="150" android:drawable="@drawable/loading_04" /> |
| 8 | <item android:duration="150" android:drawable="@drawable/loading_05" /> |
| 9 | <item android:duration="150" android:drawable="@drawable/loading_06" /> |
| 10 | <item android:duration="150" android:drawable="@drawable/loading_07" /> |
| 11 | </animation-list> |
二、通过自定义颜色实现
定义res/drawable/progress_small.xml如下:
| 1 | <?xml version="1.0" encoding="utf-8"?> |
| 2 | <rotate xmlns:android="http://schemas.android.com/apk/res/android" |
| 3 | android:fromDegrees="0" |
| 4 | android:pivotX="50%" |
| 5 | android:pivotY="50%" |
| 6 | android:toDegrees="360" > |
| 7 | <shape |
| 8 | android:innerRadiusRatio="3" |
| 9 | android:shape="ring" |
| 10 | android:thicknessRatio="8" |
| 11 | android:useLevel="false" > |
| 12 | <gradient |
| 13 | android:centerColor="#FFFFFF" |
| 14 | android:centerY="0.50" |
| 15 | android:endColor="#1E90FF" |
| 16 | android:startColor="#000000" |
| 17 | android:type="sweep" |
| 18 | android:useLevel="false" /> |
| 19 | </shape> |
| 20 | </rotate> |
三、使用一张图片进行自定义
定义res/drawable/progress_small.xml如下:
| 1 | <ProgressBar |
| 2 | android:layout_width="wrap_content" |
| 3 | android:layout_height="wrap_content" |
| 4 | android:indeterminateDrawable="@drawable/progress_small"/> |
使用方法都一样, 如下:
| 1 | <ProgressBar |
| 2 | android:layout_width="wrap_content" |
| 3 | android:layout_height="wrap_content" |
| 4 | android:indeterminateDrawable="@drawable/progress_small"/> |
也可以根据需要通过设置style来设置其大小! 一般只有使用默认的ProgrressBar的时候采用。对于上述三种自定义的方式,建议修改直接修改图片大小,或者shape;
| 1 | <ProgressBar |
| 2 | android:layout_width="wrap_content" |
| 3 | android:layout_height="wrap_content" |
| 4 | android:layout_centerInParent="true" |
| 5 | style="?android:attr/progressBarStyleSmall" |
| 6 | android:indeterminateDrawable="@drawable/progress_small"/> |
设置成progressBarStyleSmall之后,图标变小;
设置成progressBarStyleLarge之后,图标变大。


本文介绍三种自定义Android中ProgressBar的方法,包括使用动画、自定义颜色及利用图片实现,并提供了具体的XML配置示例。
6403

被折叠的 条评论
为什么被折叠?



