Android系统自带的ProgressBar风格不是很好,如果想自己设置风格的话,一般有几种方法。首先介绍一下第一种方法通过动画实现。在res的anim下创建动画资源loading.xml:
<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
android:oneshot="false" >
<item
android:drawable="@drawable/common_loading_0"
android:duration="100"/>
<item
android:drawable="@drawable/common_loading_1"
android:duration="100"/>
<item
android:drawable="@drawable/common_loading_2"
android:duration="100"/>
<item
android:drawable="@drawable/common_loading_3"
android:duration="100"/>
<item
android:drawable="@drawable/common_loading_4"
android:duration="100"/>
<item
android:drawable="@drawable/common_loading_5"
android:duration="100"/>
<item
android:drawable="@drawable/common_loading_6"
android:duration="100"/>
<item
android:drawable="@drawable/common_loading_7"
android:duration="100"/>
<item
android:drawable="@drawable/common_loading_8"
android:duration="100"/>
<item
android:drawable="@drawable/common_loading_9"
android:duration="100"/>
<item
android:drawable="@drawable/common_loading_10"
android:duration="100"/>
<item
android:drawable="@drawable/common_loading_11"
android:duration="100"/>
</animation-list>
然后在布局文件中调用即可:
<ProgressBar
android:layout_width="40dp"
android:layout_height="40dp"
android:indeterminate="false"
android:indeterminateDrawable="@anim/loading" />
备注:ProgressBar的大小需要按照图片的大小来调整,不然的话效果不是很好。
第二种方法是使用一张图片进行定义。在res的drawable里创建loading.xml文件。
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item>
<rotate
android:drawable="@drawable/dialog_progress_round"
android:fromDegrees="0.0"
android:pivotX="50.0%"
android:pivotY="50.0%"
android:toDegrees="360.0" />
</item>
</layer-list>
然后在布局文件里调用即可,代码:
<ProgressBar
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:indeterminate="false"
android:indeterminateDrawable="@drawable/loading" />
备注:这也的方法有个不好的地方是旋转的有点慢,我也没有找到什么方法可以调整它旋转的速度,如果有更好的方法,希望跟我联系一下,QQ:981805903。