[关闭]
@zhutoulwz 2015-04-06T18:45:15.000000Z 字数 1304 阅读 2851

Android使用Shape实现ProgressBar样式

Android


使用Shape实现样式

使用Shape中的ring实现,如下布局ring.xml

  1. <shape xmlns:android="http://schemas.android.com/apk/res/android"
  2. android:shape="ring"
  3. android:thickness="5dp"
  4. android:useLevel="false" >
  5. <gradient
  6. android:endColor="#888"
  7. android:startColor="#ccc"
  8. android:type="sweep"
  9. android:useLevel="false" />
  10. </shape>

使用rotate使之旋转

如下progressbar.xml

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

注意:其中fromDegrees与toDegrees之差要是360的倍数,不然中间会有转的时候会跳一下,另外,这个差越大就转得越快,具体效果大家可以自行试一下

使用

  1. <ProgressBar
  2. style="?android:attr/progressBarStyleLarge"
  3. android:layout_width="wrap_content"
  4. android:layout_height="wrap_content"
  5. android:indeterminateDrawable="@drawable/progressbar" <!-- 这里使用自定义的progressbar样式 -->
  6. />

更简单的方法

直接使用一个布局文件就可以实现:

  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="1080" >
  7. <shape
  8. android:shape="ring"
  9. android:thickness="5dp"
  10. android:useLevel="false" >
  11. <gradient
  12. android:endColor="#888"
  13. android:startColor="#ccc"
  14. android:type="sweep"
  15. android:useLevel="false" />
  16. </shape>
  17. </rotate>
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注