自定义圆形进度条的实现方式


如何自定义圆形进度条哪,也就是替换一下进度条的图片而已。

先分析一下,系统对进度条如何定义的:

咱们一般情况下载布局文件中这么书写:

//在布局文件里的代码
   

style="?android:attr/progressBarStyleSmall" 这个引用的是样式

这是在att.xml文件里的内容
   
	
    
这是在theme.xml中的内容
   
看到这里就知道,引用的图片在这里:@android:drawable/progress_small_white

//引用的drawble 
    //progress_small_white.xml
    
//放到drawable文件夹下了

 //然后就是这张图片了
spinner_white_16,这种图片没在源码中找到

注意:spinner_white_16不一定就是一张纯的图片,有可能是动画。

从下面的实现方式就能知道spinner_white_16到底是不是图片:在这里明确一下,可以是图片,当然也可以使其他的,请看下面的实现

定义实现:


其实就是
android:indeterminateDrawable="@anim/loading"

把这个属性指向的资源改为你想要的就可以。

实现的三种方式:

1.指向动画的实现方式

熊猫阅读就是利用这种方式实现的:

看代码:

在res资源文件夹下的anim文件夹下创建一个动画文件:

内容如下:比如名字命名为loading.xml



	
	
	
	
	
	
	
 
每个item分别引用一张图片

引用就是这样

android:indeterminateDrawable="@anim/loading"

2.指向用颜色定义的drawable资源:




    
        
    


引用的时候就是使用drawble了 

android:indeterminateDrawable="@drawable/style_xml_color"
当然这样也可以:



 

3.引用一个图片

drawable文件:


 


    
        
    


引用一张图片

android:drawable="@drawable/dialog_progress_round2_res"

最后总结一下,其实引用的里面,都有旋转动画,如果只引用一张图片的话,他不会旋转的。有兴趣的朋友自己可以试一下。也可以看看源码如何实现的。有什么建议请留言。


使用drawable和第二种方式一样。

需要源码的同学,加入这个群:200956440,群共享里有源码。





你可能感兴趣的:(android)