- 使用
ProgressBar 下indeterminateDrawable
<ProgressBar
android:id="@+id/pb"
android:layout_width="115dp"
android:layout_height="115dp"
android:layout_marginTop="100dp"
android:indeterminateDrawable="@drawable/indeterminate"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
indeterminate.xml文件
<?xml version="1.0" encoding="utf-8"?>
<animated-rotate xmlns:android="http://schemas.android.com/apk/res/android"
android:drawable="@drawable/indeterminate_style"
android:pivotX="50%"
android:pivotY="50%">
</animated-rotate>
indeterminate_style.xml文件
<rotate xmlns:android="http://schemas.android.com/apk/res/android"
android:fromDegrees="0"
android:pivotX="50%"
android:pivotY="50%"
android:toDegrees="360">
<shape
android:shape="ring"
android:thickness="2dp"
android:useLevel="false">
<stroke
android:color="@color/black"
android:dashWidth="1dp"
android:dashGap="5dp" />
<gradient
android:centerColor="#10FFFFFF"
android:centerY="0.5"
android:endColor="#1E90FF"
android:startColor="#00000000"
android:type="sweep"
/>
</shape>
</rotate>
shape标签下有很多属性
- android:thickness 宽度
- innerRadius 内径
- innerRadiusRatio 表示环的内半径与环宽度的比率。例如,如果innerRadiusRatio=9,则内半径等于环的宽度除以9。如果定义了innerRadius,则忽略该值。默认值为 9
- thicknessRatio 表示环的厚度与环宽度的比率。例如,如果thicknessRatio=3,则厚度等于环的宽度除以3。如果定义了innerRadius,则该值将被忽略。默认值为 3。
shape oval 可搭配stroke使用 就会变成一圈点点
oval搭配渐变
ring搭配渐变 需要设置useLevel=false