当前位置:主页 > 移动开发 > Android代码 >

Android Shape属性创建环形进度条

时间:2020-10-06 21:53:08 | 栏目:Android代码 | 点击:

1,实现效果 

   

 2,实现代码:
【1】 shape_drawable.xml 文件

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
  android:innerRadius="20dp"
  android:shape="ring"
  android:thickness="8dp"
  android:useLevel="false" >

  <gradient android:angle="0"
    android:startColor="@color/normal"
    android:centerColor="#5027844F"
    android:endColor="#fff"
    android:useLevel="false"
    android:type="sweep"
    />
</shape>

 【2】 我们将该自定义环形圈设置给一个旋转动画,并利用该旋转动画自定义成一个环形进度圈的style,最后将该自定义的style赋值给Progress组件。
progress_rotate文件

<?xml version="1.0" encoding="utf-8"?>
<rotate xmlns:android="http://schemas.android.com/apk/res/android"
  android:drawable="@drawable/shape_drawable"
  android:pivotX="50%"
  android:pivotY="50%"
  android:fromDegrees="0"
  android:toDegrees="360"
  >
</rotate>

 【3】 自定义Progress的style:
CustomProgressStyle文件

<style name="CustomProgressStyle" >
  <item name="android:indeterminateDrawable">@drawable/progress_rotate</item>
  <item name="android:minWidth">72dp</item>
  <item name="android:maxWidth">72dp</item>
  <item name="android:minHeight">72dp</item>
  <item name="android:maxHeight">72dp</item>
</style> 

【4】 应用到Progress组件

<ProgressBar
   android:layout_width="100dp"
   android:layout_height="100dp"
   android:layout_centerInParent="true"
   style="@style/CustomProgressStyle"
   android:indeterminateDuration="700"
   />

总结

您可能感兴趣的文章:

相关文章