ProgressBar 进度条的进度两端是圆角的方法

ProgressBar 自定义的时候可能会遇到一个问题,希望进度条中的进度的两端都是圆角的(或者进度的末端是圆角的);
如下图:

progress bar rounder

但是根据自定义的shape 或者是 layer-list却总是很难做到,几乎都是被clip成了直角的样子;

progress bar


为什么是直角的?原因就是被clip给切了,所以我们不能够用clip,而要使用scale这个标签。而上面链接给出的解答是定义一个.9的图片就能满足要求,由于我们这里是纯色的一个进度,所以没有必要通过再制作一个.9的图片,而只需要通过同样的方法引用我们定义的一个shape就可以了;
见代码:


progressDrawable 引用的progress_bar_drawable:



       
                
            
                  
        
      
    
                 
                        
            
                     
               
        
       

    
            
    
  

重点就是这个:

  
 

指定了一个我们自定义的shape:progress_bar_ct.xml


 
      
      
       
        
        

这样就不需要自定义.9的图片了;
PS:由于本人的需求是右端才是圆角,如果需要4个角都是圆角只需要修改一点代码即可;

 ```

修改成:


    
    

        

            

            

            

            
            
        
    

    
    

        

            

                

                

                
            
        
    

    
    
        
            
                
                
                
                
                
                
            
        
        

        

        
        
        
        
        

        
        
        
        

        

        
        
        
        
        
        
        
        
        
        
        
        
    

你可能感兴趣的:(ProgressBar 进度条的进度两端是圆角的方法)