通过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。
。。
时间: 2024-10-11 03:21:21