通过indeterminateDrawable属性去自己定义ProgressBar方法:
<ProgressBar android:id="@+id/pb" android:layout_width="30dp" android:layout_height="30dp" android:layout_centerVertical="true" android:indeterminateDrawable="@drawable/loading" />
当中的loading.xml又能够有几种方式:
1.animation-list,由一堆连续性图片组成:
<?xml version="1.0" encoding="UTF-8"?>
<animation-list android:oneshot="false" xmlns:android="http://schemas.android.com/apk/res/android">
<item android:duration="50" android:drawable="@drawable/load_1" />
<item android:duration="50" android:drawable="@drawable/load_2" />
<item android:duration="50" android:drawable="@drawable/load_3" />
<item android:duration="50" android:drawable="@drawable/load_4" />
<item android:duration="50" android:drawable="@drawable/load_5" />
<item android:duration="50" android:drawable="@drawable/load_6" />
<item android:duration="50" android:drawable="@drawable/load_7" />
<item android:duration="50" android:drawable="@drawable/load_8" />
</animation-list>
2.layer-list/rotate,通过一个图片进行不断旋转实现:
<?xml version="1.0" encoding="utf-8"?
> <layer-list xmlns:android="http://schemas.android.com/apk/res/android" > <item> <rotate android:drawable="@drawable/loading" android:fromDegrees="0.0" android:pivotX="50.0%" android:pivotY="50.0%" android:toDegrees="1000" /> </item> </layer-list>
3.定义一个圆形shape以及颜色旋转:
<rotate xmlns:android="http://schemas.android.com/apk/res/android" android:fromDegrees="0" android:pivotX="50%" android:pivotY="50%" android:toDegrees="360" >
<shape android:innerRadiusRatio="3" android:shape="ring" android:thicknessRatio="10" android:useLevel="false" >
<gradient android:centerColor="#FFFFFF" android:centerY="0.50" android:endColor="#1E90FF" android:startColor="#000000" android:type="sweep" android:useLevel="false" />
</shape>
</rotate>
在使用过程中发现,第一种形式在6.0下面系统完美执行,但在6.0及以上系统无法显示,假设有遇到此问题的同学能够选择其它方式就可以!不显示的原因未知。可能是6.0的bug。
。。