自定义水平进度条Horizontal ProgressBar

系统的ProgressBar 样式

打开Styles.xml,可以看到系统的ProgressBar 样式定义如下:

    

一眼就可以发现,主要样式定义在progressDrawable 属性中了:
progress_horizontal.xml


    
    
        
            
            
        
    
    
    
        
            
                
                
            
        
    
    
    
        
            
                
                
            
        
    
    


可以看到,ProgressBar 实际上就是一个Layer list,每一个Layer 分别定义了ProgressBar 的进度条,第二进度条和背景。知道了这些,自定义进度条实际上就是将layer list中的属性替换成自己需要的属性就行了。


自定义水平进度条

首先在drawable 文件夹下新建xml 文件,根元素为,在每个item 项下可以定义自己的属性:

progressbar_horizontal




    
        
            
        
    
    
        
            
                
            
        
    
    
        
            
                
            
        
    


也可以通过drawable 属性引用相应的drawable 对象。

然后将ProgressBar 的progressdrawable 属性指向上面定义的layer-list 就可以了。可以在style中定义,然后在ProgressBar 的属性中引用自定义的style:

styles.xml

    

            style="@style/my_progress_1"
                android:layout_height="wrap_content"
                android:layout_gravity="center_vertical"
                android:layout_marginLeft="10dp"
                android:max="50000" />

也可以直接使用progressDrawable属性:

            android:progressDrawable="@drawable/progressbar_horizontal"
                android:layout_height="wrap_content"
                android:layout_gravity="center_vertical"
                android:layout_marginLeft="10dp"
                android:max="50000" />



你可能感兴趣的:(android开发)