为了效果更加明显,背景设置成红色,先看下原生效果
再看下试下效果
直接说怎么实现:
1、设置资源android:indeterminateDrawable
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent" >
<ProgressBar
android:id="@+id/loading"
style="?android:attr/progressBarStyleLarge"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:indeterminateDrawable="@drawable/loading_anim" />
</FrameLayout>
2、设置动画资源res/drawable/loading_anim.xml
<?xml version="1.0" encoding="utf-8"?>
<rotate xmlns:android="http://schemas.android.com/apk/res/android"
android:pivotX="50%"
android:pivotY="50%"
android:fromDegrees="0"
android:toDegrees="1440"
android:drawable="@mipmap/loading">
</rotate>
3、图片资源只有一张
水平样式:progressDrawable
<ProgressBar
android:id="@+id/pb_progress"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:progress="50"
android:progressDrawable="@drawable/progress_horizontal" />
其中drawable/progress_horizontal
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@android:id/background">
<shape>
<solid android:color="#CCC"/>
</shape>
</item>
<item android:id="@android:id/secondaryProgress">
<clip>
<shape>
<solid android:color="#33FF0000"/>
</shape>
</clip>
</item>
<item android:id="@android:id/progress">
<clip>
<shape>
<solid android:color="#66FF0000"/>
</shape>
</clip>
</item>
</layer-list>
三个item,第一个表示底部颜色,第二个表示中间颜色,第三个表示进度颜色。