【Android进度条】三种方式实现自定义圆形进度条ProgressBar
2012-08-19 13:57
931 查看
一、通过动画实现
定义res/anim/loading.xml如下:
[html]
view plaincopyprint?
<?xml
version="1.0"
encoding="UTF-8"?>
<animation-list
android:oneshot="false"
xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:duration="150"
android:drawable="@drawable/loading_01"
/>
<item
android:duration="150"
android:drawable="@drawable/loading_02"
/>
<item
android:duration="150"
android:drawable="@drawable/loading_03"
/>
<item
android:duration="150"
android:drawable="@drawable/loading_04"
/>
<item
android:duration="150"
android:drawable="@drawable/loading_05"
/>
<item
android:duration="150"
android:drawable="@drawable/loading_06"
/>
<item
android:duration="150"
android:drawable="@drawable/loading_07"
/>
</animation-list>
二、通过自定义颜色实现
定义res/drawable/progress_small.xml如下:
[html]
view plaincopyprint?
<?xml
version="1.0"
encoding="utf-8"?>
<rotate
xmlns:android="http://schemas.android.com/apk/res/android"
android:fromDegrees="0"
android:pivotX="50%"
android:pivotY="50%"
android:toDegrees="360"
>
<shape
android:innerRadiusRatio="3"
android:shape="ring"
android:thicknessRatio="8"
android:useLevel="false"
>
<gradient
android:centerColor="#FFFFFF"
android:centerY="0.50"
android:endColor="#1E90FF"
android:startColor="#000000"
android:type="sweep"
android:useLevel="false"
/>
</shape>
</rotate>
三、使用一张图片进行自定义
定义res/drawable/progress_small.xml如下:
[html]
view plaincopyprint?
<rotate
xmlns:android="http://schemas.android.com/apk/res/android"
android:drawable="@drawable/spinner_black_16"
android:pivotX="50%"
android:pivotY="50%"
android:fromDegrees="0"
android:toDegrees="360"
/>
使用方法都一样, 如下:
[html]
view plaincopyprint?
<ProgressBar
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:indeterminateDrawable="@drawable/progress_small"/>
也可以根据需要通过设置style来设置其大小! 一般只有使用默认的ProgrressBar的时候采用。对于上述三种自定义的方式,建议修改直接修改图片大小,或者shape;
[html]
view plaincopyprint?
<ProgressBar
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
style="?android:attr/progressBarStyleSmall"
android:indeterminateDrawable="@drawable/progress_small"/>
设置成progressBarStyleSmall后,图标变小。
设置成progressBarStyleLarge后,图标变大
参考:
http://www.eoeandroid.com/forum.php?mod=viewthread&tid=76872
定义res/anim/loading.xml如下:
[html]
view plaincopyprint?
<?xml
version="1.0"
encoding="UTF-8"?>
<animation-list
android:oneshot="false"
xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:duration="150"
android:drawable="@drawable/loading_01"
/>
<item
android:duration="150"
android:drawable="@drawable/loading_02"
/>
<item
android:duration="150"
android:drawable="@drawable/loading_03"
/>
<item
android:duration="150"
android:drawable="@drawable/loading_04"
/>
<item
android:duration="150"
android:drawable="@drawable/loading_05"
/>
<item
android:duration="150"
android:drawable="@drawable/loading_06"
/>
<item
android:duration="150"
android:drawable="@drawable/loading_07"
/>
</animation-list>
<?xml version="1.0" encoding="UTF-8"?> <animation-list android:oneshot="false" xmlns:android="http://schemas.android.com/apk/res/android"> <item android:duration="150" android:drawable="@drawable/loading_01" /> <item android:duration="150" android:drawable="@drawable/loading_02" /> <item android:duration="150" android:drawable="@drawable/loading_03" /> <item android:duration="150" android:drawable="@drawable/loading_04" /> <item android:duration="150" android:drawable="@drawable/loading_05" /> <item android:duration="150" android:drawable="@drawable/loading_06" /> <item android:duration="150" android:drawable="@drawable/loading_07" /> </animation-list>
二、通过自定义颜色实现
定义res/drawable/progress_small.xml如下:
[html]
view plaincopyprint?
<?xml
version="1.0"
encoding="utf-8"?>
<rotate
xmlns:android="http://schemas.android.com/apk/res/android"
android:fromDegrees="0"
android:pivotX="50%"
android:pivotY="50%"
android:toDegrees="360"
>
<shape
android:innerRadiusRatio="3"
android:shape="ring"
android:thicknessRatio="8"
android:useLevel="false"
>
<gradient
android:centerColor="#FFFFFF"
android:centerY="0.50"
android:endColor="#1E90FF"
android:startColor="#000000"
android:type="sweep"
android:useLevel="false"
/>
</shape>
</rotate>
<?xml version="1.0" encoding="utf-8"?> <rotate xmlns:android="http://schemas.android.com/apk/res/android" android:fromDegrees="0" android:pivotX="50%" android:pivotY="50%" android:toDegrees="360" > <shape android:innerRadiusRatio="3" android:shape="ring" android:thicknessRatio="8" android:useLevel="false" > <gradient android:centerColor="#FFFFFF" android:centerY="0.50" android:endColor="#1E90FF" android:startColor="#000000" android:type="sweep" android:useLevel="false" /> </shape> </rotate>
三、使用一张图片进行自定义
定义res/drawable/progress_small.xml如下:
[html]
view plaincopyprint?
<rotate
xmlns:android="http://schemas.android.com/apk/res/android"
android:drawable="@drawable/spinner_black_16"
android:pivotX="50%"
android:pivotY="50%"
android:fromDegrees="0"
android:toDegrees="360"
/>
<rotate xmlns:android="http://schemas.android.com/apk/res/android" android:drawable="@drawable/spinner_black_16" android:pivotX="50%" android:pivotY="50%" android:fromDegrees="0" android:toDegrees="360" />
使用方法都一样, 如下:
[html]
view plaincopyprint?
<ProgressBar
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:indeterminateDrawable="@drawable/progress_small"/>
<ProgressBar android:layout_width="wrap_content" android:layout_height="wrap_content" android:indeterminateDrawable="@drawable/progress_small"/>
也可以根据需要通过设置style来设置其大小! 一般只有使用默认的ProgrressBar的时候采用。对于上述三种自定义的方式,建议修改直接修改图片大小,或者shape;
[html]
view plaincopyprint?
<ProgressBar
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
style="?android:attr/progressBarStyleSmall"
android:indeterminateDrawable="@drawable/progress_small"/>
<ProgressBar android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true" style="?android:attr/progressBarStyleSmall" android:indeterminateDrawable="@drawable/progress_small"/>
设置成progressBarStyleSmall后,图标变小。
设置成progressBarStyleLarge后,图标变大
参考:
http://www.eoeandroid.com/forum.php?mod=viewthread&tid=76872
相关文章推荐
- 【Android进度条】三种方式实现自定义圆形进度条ProgressBar
- 【Android进度条】三种方式实现自定义圆形进度条ProgressBar
- 【Android进度条】三种方式实现自定义圆形进度条ProgressBar
- Android 三种方式实现自定义圆形进度条ProgressBar
- 【Android进度条】三种方式实现自定义圆形进度条ProgressBar
- Android三种方式实现ProgressBar自定义圆形进度条
- 【Android进度条】三种方式实现自定义圆形进度条ProgressBar
- Android 三种方式实现自定义圆形页面加载中效果的进度条
- Android 三种方式实现自定义圆形页面加载中效果的进度条
- Android 三种方式实现自定义圆形页面加载中效果的进度条
- 三种方式实现自定义圆形页面加载中效果的进度条,包含一个好看的Android UI
- Android 三种方式实现自定义圆形页面加载中效果的进度条
- Android 三种方式实现自定义圆形页面加载中效果的进度条
- 三种方式实现自定义圆形进度条ProgressBar
- Android 三种方式实现自定义圆形页面加载中效果的进度条
- 三种方式实现自定义圆形页面加载中效果的进度条
- 三种方式实现自定义圆形页面加载中效果的进度条
- 三种方式实现自定义圆形页面加载中效果的进度条
- 三种方式实现自定义圆形页面加载中效果的进度条
- Android 三种常用实现自定义圆形进度条 ProgressBar 及demo