Android 圆形ProgressBar风格设置

  Android系统自带的ProgressBar风格不是很好,如果想自己设置风格的话,一般有几种方法。首先介绍一下第一种方法通过动画实现。在res的anim下创建动画资源loading.xml:

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <animation-list xmlns:android="http://schemas.android.com/apk/res/android"
 3     android:oneshot="false" >
 4 
 5     <item
 6         android:drawable="@drawable/common_loading_0"
 7         android:duration="100"/>
 8     <item
 9         android:drawable="@drawable/common_loading_1"
10         android:duration="100"/>
11     <item
12         android:drawable="@drawable/common_loading_2"
13         android:duration="100"/>
14     <item
15         android:drawable="@drawable/common_loading_3"
16         android:duration="100"/>
17     <item
18         android:drawable="@drawable/common_loading_4"
19         android:duration="100"/>
20     <item
21         android:drawable="@drawable/common_loading_5"
22         android:duration="100"/>
23     <item
24         android:drawable="@drawable/common_loading_6"
25         android:duration="100"/>
26     <item
27         android:drawable="@drawable/common_loading_7"
28         android:duration="100"/>
29     <item
30         android:drawable="@drawable/common_loading_8"
31         android:duration="100"/>
32     <item
33         android:drawable="@drawable/common_loading_9"
34         android:duration="100"/>
35     <item
36         android:drawable="@drawable/common_loading_10"
37         android:duration="100"/>
38     <item
39         android:drawable="@drawable/common_loading_11"
40         android:duration="100"/>
41 
42 </animation-list>

  然后在布局文件中调用即可:

1 <ProgressBar
2             android:layout_width="40dp"
3             android:layout_height="40dp"
4             android:layout_gravity="center_horizontal"
5             android:indeterminate="false"
6             android:indeterminateDrawable="@anim/loading" />

  备注:ProgressBar的大小需要按照图片的大小来调整,不然的话效果不是很好。
  第二种方法是使用一张图片进行定义。在res的drawable里创建loading.xml文件。

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
 3 
 4     <item>
 5         <rotate
 6             android:drawable="@drawable/common_loading"
 7             android:fromDegrees="0.0"
 8             android:pivotX="50.0%"
 9             android:pivotY="50.0%"
10             android:toDegrees="360.0" />
11     </item>
12 
13 </layer-list>

  然后在布局文件里调用即可,代码:

1 <ProgressBar
2         android:id="@+id/loading_process_dialog_progressBar"
3         android:layout_width="wrap_content"
4         android:layout_height="wrap_content"
5         android:indeterminate="false"
6         android:indeterminateDrawable="@drawable/loading" />

  备注:这也的方法有个不好的地方是旋转的有点慢,我也没有找到什么方法可以调整它旋转的速度,如果有更好的方法,希望跟我联系一下,QQ:981805903。

原文地址:https://www.cnblogs.com/phj981805903/p/3243665.html