天天看点

Android开发之shape自定义ProgressBar进度条样式

1.xml代码方式一:如下(此shape是放到drawable目录下的)

<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="8"
        android:useLevel="false">
        <gradient
            android:centerColor="#ff0000"
            android:endColor="#111111"
            android:startColor="#B23AEE"
            android:type="sweep"
            android:useLevel="false" />
    </shape>
</rotate>
           

2.看下效果图:

Android开发之shape自定义ProgressBar进度条样式

xml代码方式二如下:

<?xml version="1.0" encoding="utf-8"?>
<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="20"
        android:useLevel="false">
        <gradient
            android:centerColor="#66FF0000"
            android:endColor="#FF0000"
            android:startColor="#FFFFFF"
            android:type="sweep" />
    </shape>

</rotate>

           
Android开发之shape自定义ProgressBar进度条样式

然后直接在progressBar中的indeterminateDrawable属性中使用即可

Android开发之shape自定义ProgressBar进度条样式
<ProgressBar
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:indeterminateDrawable="@drawable/custom_progressbar"
        app:layout_constraintBottom_toTopOf="@+id/btOpen"
        app:layout_constraintEnd_toEndOf="@+id/btOpen"
        app:layout_constraintHorizontal_bias="0.496"
        app:layout_constraintStart_toStartOf="@+id/btOpen"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.34" />