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

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


progress bar rounder

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


progress bar

;

问题的原因就是如下链接中也会有相似的解答:
Android开发中Progress需要两边都是圆角怎么办?


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


progressDrawable 引用的progress_bar_drawable:



       
                
            
                  
        
      
    
                 
                        
            
                     
               
        
       

    
            
    
  

重点就是这个:

  
 

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


 
      
      
       
        
        

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

 ```

修改成:

即可;

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