是否有Android的任何方式绘制填充矩形说黑色边框。 我的问题是,canvas.draw()需要一个喷漆的对象,而据我所知,喷漆的对象不能有不同颜色的填充和笔触。 有没有解决的办法?
Answer 1:
你画与边框的颜色和矩形加边框的大小的矩形,你改变油漆的颜色,并与正常大小再次绘制矩形。
Answer 2:
尝试油漆。 使用setStyle(Paint.Style。FILL)和油漆。 的setStyle(Paint.Style。 行程 )。
Paint paint = new Paint();
Rect r = new Rect(10, 10, 200, 100);
@Override
public void onDraw(Canvas canvas) {
// fill
paint.setStyle(Paint.Style.FILL);
paint.setColor(Color.MAGENTA);
canvas.drawRect(r, paint);
// border
paint.setStyle(Paint.Style.STROKE);
paint.setColor(Color.BLACK);
canvas.drawRect(r, paint);
}
Answer 3:
如果您绘制多个视图,那么你也可以使用两种漆,一个用于中风和一个用于填充。 你不必这样,让他们复位。
Paint fillPaint = new Paint();
Paint strokePaint = new Paint();
RectF r = new RectF(30, 30, 1000, 500);
void initPaints() {
// fill
fillPaint.setStyle(Paint.Style.FILL);
fillPaint.setColor(Color.YELLOW);
// stroke
strokePaint.setStyle(Paint.Style.STROKE);
strokePaint.setColor(Color.BLACK);
strokePaint.setStrokeWidth(10);
}
@Override
protected void onDraw(Canvas canvas) {
// First rectangle
canvas.drawRect(r, fillPaint); // fill
canvas.drawRect(r, strokePaint); // stroke
canvas.translate(0, 600);
// Second rectangle
int cornerRadius = 50;
canvas.drawRoundRect(r, cornerRadius, cornerRadius, fillPaint); // fill
canvas.drawRoundRect(r, cornerRadius, cornerRadius, strokePaint); // stroke
}
文章来源: Drawing a filled rectangle with a border in android