前言
有时候系统默认的圆形进度条不能满足我们的需求,那么下面我们来对默认的颜色和样式进行一个修改。
效果图
实现代码
因为是圆形进度条,我们需要设置下面这个属性
android:indeterminateDrawable
<ProgressBar
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_gravity="center"
android:indeterminateDrawable="@drawable/bgcolor"
/>
主要的实现还是在bgcolor.xml文件里
<?xml version="1.0" encoding="utf-8"?>
<animated-rotate xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="100"
android:fromDegrees="0"
android:pivotX="50%"
android:pivotY="50%"
android:toDegrees="360">
<shape
android:innerRadius="15dp"
android:shape="ring"
android:thickness="5dp"
android:useLevel="false">
<gradient
android:centerY="0.50"
android:endColor="#FF7121"
android:startColor="#ffffff"
android:type="sweep"
android:useLevel="false" />
</shape>
</animated-rotate>
我们通过animated-rotate定义了一个旋转动画,同时设置了进度条的样式
下面解释一下上面一些属性的意思:
android:pivotX 动画执行的起点x坐标 50%代表相对自身宽度的
android:innerRadius 内环的半径
android:thickness 环的厚度
android:useLevel 只有当我们的shape使用在LevelListDrawable中时,这个值为true,否则为false
android:centerY 渐变中心Y的相对位置,值为0-1
android:type 渐变类型,还有linear,radial两种类型,线性渐变和放射渐变