首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

三种模式实现自定义圆形进度条ProgressBar

2014-01-08 
三种方式实现自定义圆形进度条ProgressBar一、通过动画实现定义res/anim/loading.xml如下:[html]?view plai

三种方式实现自定义圆形进度条ProgressBar

一、通过动画实现

定义res/anim/loading.xml如下:

[html]?view plaincopyprint??
  1. <?xml?version="1.0"?encoding="UTF-8"?>??
  2. <animation-list?android:oneshot="false"??
  3. xmlns:android="http://schemas.android.com/apk/res/android">??
  4. ??<item?android:duration="150"?android:drawable="@drawable/loading_01"?/>??
  5. ??<item?android:duration="150"?android:drawable="@drawable/loading_02"?/>??
  6. ??<item?android:duration="150"?android:drawable="@drawable/loading_03"?/>??
  7. ??<item?android:duration="150"?android:drawable="@drawable/loading_04"?/>??
  8. ??<item?android:duration="150"?android:drawable="@drawable/loading_05"?/>??
  9. ??<item?android:duration="150"?android:drawable="@drawable/loading_06"?/>??
  10. ??<item?android:duration="150"?android:drawable="@drawable/loading_07"?/>??
  11. </animation-list>???



二、通过自定义颜色实现

定义res/drawable/progress_small.xml如下:

?

[html]?view plaincopyprint??
  1. <?xml?version="1.0"?encoding="utf-8"?>??
  2. <rotate?xmlns:android="http://schemas.android.com/apk/res/android"??
  3. ????android:fromDegrees="0"??
  4. ????android:pivotX="50%"??
  5. ????android:pivotY="50%"??
  6. ????android:toDegrees="360"?>??
  7. ????<shape??
  8. ????????android:innerRadiusRatio="3"??
  9. ????????android:shape="ring"??
  10. ????????android:thicknessRatio="8"??
  11. ????????android:useLevel="false"?>??
  12. ????????<gradient??
  13. ????????????android:centerColor="#FFFFFF"??
  14. ????????????android:centerY="0.50"??
  15. ????????????android:endColor="#1E90FF"??
  16. ????????????android:startColor="#000000"??
  17. ????????????android:type="sweep"??
  18. ????????????android:useLevel="false"?/>??
  19. ????</shape>??
  20. </rotate>??


三、使用一张图片进行自定义
定义res/drawable/progress_small.xml如下:

?

[html]?view plaincopyprint??
  1. <rotate?xmlns:android="http://schemas.android.com/apk/res/android"??
  2. ????android:drawable="@drawable/spinner_black_16"??
  3. ????android:pivotX="50%"??
  4. ????android:pivotY="50%"??
  5. ????android:fromDegrees="0"??
  6. ????android:toDegrees="360"?/>??



使用方法都一样,?如下:

?

[html]?view plaincopyprint??
  1. <ProgressBar??
  2. ????android:layout_width="wrap_content"??
  3. ????android:layout_height="wrap_content"??
  4. ????android:indeterminateDrawable="@drawable/progress_small"/>??



?

也可以根据需要通过设置style来设置其大小! 一般只有使用默认的ProgrressBar的时候采用。对于上述三种自定义的方式,建议修改直接修改图片大小,或者shape;

?

[html]?view plaincopyprint??
  1. <ProgressBar??
  2. ????android:layout_width="wrap_content"??
  3. ????android:layout_height="wrap_content"??
  4. ????android:layout_centerInParent="true"??
  5. ????style="?android:attr/progressBarStyleSmall"??
  6. ????android:indeterminateDrawable="@drawable/progress_small"/>??


设置成progressBarStyleSmall后,图标变小。 

设置成progressBarStyleLarge后,图标变大

? ?
三种模式实现自定义圆形进度条ProgressBar三种模式实现自定义圆形进度条ProgressBar
?
?

?

参考:?http://blog.csdn.net/feng88724/article/details/7409032

热点排行