Android之自定义ProgressBar样式

使用Android提供的ProgressBar样式实在没什么特色,所以在开发过程中一般都会使用符合App主题的一张图片进行自定义。下面通过自定义一个旋转图片的样式来演示修改ProgressBar样式的过程。

  • 在res/values/style.xml中自定义ProgressBar的样式
1
2
3
4
5
6
7
<style name="ProgressStyle">
<item name="android:indeterminateDrawable">@drawable/progress_bg</item>
<item name="android:minWidth">25dp</item>
<item name="android:maxWidth">25dp</item>
<item name="android:minHeight">25dp</item>
<item name="android:maxHeight">25dp</item>
</style>

注意:这里的indeterminateDrawable属性如果直接设置成图片,ProgressBar将不会旋转,所以需要自定义为rotate类型的资源。同时设置宽度和高度可以解决图片尺寸对ProgressBar大小的影响。

  • 在drawable中设置背景图片和动画
1
2
3
4
5
6
7
8
<?xml version="1.0" encoding="utf-8"?>
<rotate xmlns:android="http://schemas.android.com/apk/res/android"
<!-- 设置图片 -->
android:drawable="@drawable/progress_icon"
android:fromDegrees="0"
android:toDegrees="360"
android:pivotX="50%"
android:pivotY="50%"/>

  • 在布局文件中设置ProgressBar的style属性
1
2
3
4
5
6
<ProgressBar
android:id="@+id/progressbar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
style="@style/ProgressStyle"/>


至此,ProgressBar的样式就修改完成了。

,