欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

ProgressBar改变成我们想要的加载动画

程序员文章站 2024-03-23 22:14:34
...

ProgressBar改变成我们想要的加载动画

在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时我们又会得到不同的效果,效果如下


ProgressBar改变成我们想要的加载动画

shape中useLevel默认为true

rotate中toDegrees的大小决定转的速度,说白了就是在有限的时间首追上尾所需转的角度。

当然动画并不止这一种,android:indeterminateDrawable可以填充各种我们在drawable中定义的动画