Android中是否有任何方法可以绘制带有黑色边框的填充矩形。我的问题是canvas.draw()接受一个绘制对象,据我所知,绘制对象不能有填充和描边的不同颜色。有办法解决这个问题吗?
答案 0 :(得分:123)
尝试绘画。 setStyle (Paint.Style。 FILL )并绘制。 setStyle (Paint.Style。 STROKE 强>)。
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);
}
答案 1 :(得分:24)
如果您要绘制多个视图,那么您还可以使用两个颜色,一个用于笔划,一个用于填充。这样你就不必继续重置它们。
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
}
答案 2 :(得分:3)
您绘制一个矩形,其边框颜色和矩形的大小加上边框,您可以更改颜色的颜色并再次绘制具有正常尺寸的矩形。