自定义ProgressBar(圆形)

来源:互联网 发布:mac个人文件存放在哪里 编辑:程序博客网 时间:2024/05/16 14:38

方式一:通过一张图片填充android:indeterminateDrawable

drawable:

progressbar_circle_1.xml

  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <rotate xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     android:drawable="@drawable/loading"  
  4.     android:fromDegrees="0"  
  5.     android:pivotX="50%"  
  6.     android:pivotY="50%"  
  7.     android:toDegrees="360" >  
  8.   
  9. </rotate> 
Style:这里定义ProgressBar的大小

mProgress_circle

  1. <style name="mProgress_circle">  
  2.     <item name="android:indeterminateDrawable">@drawable/progressbar_circle_1</item>  
  3.     <item name="android:minWidth">25dp</item>  
  4.     <item name="android:minHeight">25dp</item>  
  5.     <item name="android:maxWidth">60dp</item>  
  6.     <item name="android:maxHeight">60dp</item>  
  7. </style> 
组件中引用

  1. <ProgressBar  
  2.     android:id="@+id/progressBar2"  
  3.     style="@style/mProgress_circle"  
  4.     android:layout_gravity="center_vertical"  
  5.     android:layout_width="match_parent"  
  6.     android:indeterminateDuration="1200"  
  7.     android:layout_height="wrap_content" />  

方法二:自定义

定义动画 progress_circle_loading,xml

  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="100" android:drawable="@drawable/loading_1" />    
  5.   <item android:duration="100" android:drawable="@drawable/loading_2" />    
  6.   <item android:duration="100" android:drawable="@drawable/loading_3" />    
  7.   <item android:duration="100" android:drawable="@drawable/loading_4" />    
  8.   <item android:duration="100" android:drawable="@drawable/loading_5" />    
  9.   <item android:duration="100" android:drawable="@drawable/loading_6" />  
  10. </animation-list> 

style中引入indeterminateDrawable

  1. <pre name="code" class="java"><item name="android:indeterminateDrawable">@drawable/progress_circle_loading</item>  
定义shape颜色 progress_circle_shape.xml

  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>  
style中引入indeterminateDrawable

<item name="android:indeterminateDrawable">@drawable/progress_circle_shape</item> 

0 0