如何在Android中使用ShapeDrawable以编程方式创建圆角边框?
2022-09-02 09:53:56
我需要通过扩展 ShapeDrawable 以编程方式创建一个带有圆角的边框。我需要一个带有圆角的黑色边框,外部的像素是白色的,内部的像素是透明的。我目前的代码存在多个问题,其中没有创建与边框厚度相同的平滑角,并且边框的外部像素是透明的而不是白色的。
这是我目前得到的角落的图片
以下是我在构造函数中传递 Color.TRANSPARENT 的代码,用于“fill”:
public class CustomShape extends ShapeDrawable {
private final Paint fillpaint, strokepaint;
public CustomShape(int fill, int strokeWidth,int radius) {
super(new RoundRectShape(new float[] { radius, radius, radius, radius, radius, radius, radius, radius }, null, null));
fillpaint = new Paint(this.getPaint());
fillpaint.setColor(fill);
strokepaint = new Paint(fillpaint);
strokepaint.setStyle(Paint.Style.STROKE);
strokepaint.setStrokeWidth(strokeWidth);
strokepaint.setColor(Color.BLACK);
}
@Override
protected void onDraw(Shape shape, Canvas canvas, Paint paint) {
shape.draw(canvas, fillpaint);
shape.draw(canvas, strokepaint);
}
}