ProgressBar改变成我们想要的加载动画
程序员文章站
2024-03-23 22:14:34
...
在drawable写背景
<?xml version="1.0" encoding="utf-8"?>
<rotate xmlns:android="http://schemas.android.com/apk/res/android"
android:fromDegrees="0"
android:toDegrees="360"
android:pivotX="50%"
android:pivotY="50%">
<shape
android:shape="ring"
android:innerRadius="15dp"
android:thickness="3dp"
android:useLevel="false">
<gradient
android:startColor="#fff"
android:endColor="#f00"
android:centerColor="#fff"
android:type="sweep"/>
</shape>
</rotate>
设置ProgressBar的android:indeterminateDrawable="@drawable/circle_bg",隐藏系统的progressBar显示我们自己自定义的动画,然后运行就可以了
shape=ring代表圆环
innerRadius代表圆环的内半径(从圆心到内边缘的半径)
thickness代表圆环的厚度的(内边缘到外边缘的厚度)
从测试得到 当我们ProgressBar的宽高为wrap_content时,圆环的大小并不是无限的,过大只会显示部分,再大全部都不会显示,这时我们就要改变ProgressBar的宽高
而当我们把useLevel的值改为true时我们又会得到不同的效果,效果如下
shape中useLevel默认为true
rotate中toDegrees的大小决定转的速度,说白了就是在有限的时间首追上尾所需转的角度。
当然动画并不止这一种,android:indeterminateDrawable可以填充各种我们在drawable中定义的动画