Android ShapeDrawable

  今天做项目碰到一个这样的情况,就是颜色指示框,用的是正方形边框是黑色的,里面填充颜色,颜色值是动态的,为了解决这个问题,查了好多资料,终于找到解决的方法,利用ShapeDrawable,我们自定义一个CustomShapeDrawable类继承ShapeDrawable,代码:

 1 public class CustomShapeDrawable extends ShapeDrawable {
 2     private final Paint fillpaint, strokepaint;
 3  
 4     public CustomShapeDrawable(Shape s, int fill, int stroke, int strokeWidth) {
 5         super(s);
 6         fillpaint = new Paint(this.getPaint());
 7         fillpaint.setColor(fill);
 8         strokepaint = new Paint(fillpaint);
 9         strokepaint.setStyle(Paint.Style.STROKE);
10         strokepaint.setStrokeWidth(strokeWidth);
11         strokepaint.setColor(stroke);
12     }
13  
14     @Override
15     protected void onDraw(Shape shape, Canvas canvas, Paint paint) {
16         shape.draw(canvas, fillpaint);
17         shape.draw(canvas, strokepaint);
18     }
19 }

  效果图如下:

原文地址:https://www.cnblogs.com/phj981805903/p/3325182.html