ProgressBar的indeterminateDrawable属性在安卓6.0上的问题

时间:2023-03-09 18:48:58
ProgressBar的indeterminateDrawable属性在安卓6.0上的问题

通过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。。。