Android Material Design ProgressBar 使用经验(导入,颜色自定义等)

Android Material Design ProgressBar 使用经验(导入,颜色自定义等)_第1张图片


一直觉得Android L的ProgressBar,也就是那个加载小圆圈动画非常潮,研究后发现谷歌是使用矢量图形VectorDrawable(SVG)画出图形和一些动画混合制作而成的,流畅而且生动。这里写点使用心得。

首先看下sdk里的xml源码。

    

可以看到谷歌做了一个Material风格的drawable,再看看drawable怎么写的,



    

    

这是一个animated-vector,字面上理解就是动画加矢量图形。上面drawable就是图形,下面是两个属性动画,再来看看vector_drawable_progress_bar_medium,


    
        
    

这里可以看到一些配置属性,大小什么的,pathData就这个绘图(SVG)的核心参数,再看下两个动画文件,


    
    
    

动画文件上理解可能是一个圆圈线条6.665秒内进行720度旋转,然后进行伸缩变换,复合成了动态的一个动画效果。


再来说说如何在项目中应用这个ProgressBar。

跟其他MaterialDesign控件和主题一样,你需要一个SupportV7兼容包或者高版本Sdk,兼容包在你的Sdk\extras\support\v7\appcompat目录下,最好保持最新。

1.在你的项目中挂载SupportV7兼容包,也就是项目的project.properties中写上android.library.reference.1=../导入的v7工程名

2.在你的style.xml里新建个ProgressBar的style,这个style继承于v7中的ProgressBar风格,他是自动根据sdk进行适配,如果高于L则会显现出MaterialDesign风格。

   
3.刚开始一直苦于不知道如何自定义这个ProgressBar颜色,后来看了源码xml中的attrs,才试出来是indeterminateTint和indeterminateTintMode两个属性共同作用的结果,TintMode是混合模式。源码如下,


        
        
        
            
            
            
            
            
            
            
            
            
            
            
            
        
还有一些更多的自定义属性,不再赘述。

4.最后再再你的layout中加入这个控件。

 
简单的控制隐藏和显示就能达到转圈加载中和加载完成的效果,十分简单。



你可能感兴趣的:(Android)