在Android中,有没有一种方法可以绘制一个带黑边框的填充矩形?我的问题是canvas.draw()只接受一个paint对象,并且据我所知,该paint对象无法为填充和描边设置不同的颜色。是否有解决方法?
在Android中,有没有一种方法可以绘制一个带黑边框的填充矩形?我的问题是canvas.draw()只接受一个paint对象,并且据我所知,该paint对象无法为填充和描边设置不同的颜色。是否有解决方法?
尝试使用paint.setStyle(Paint.Style.FILL)和paint.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);
}
drawRoundRect
来实现动态半径(基于矩形大小)。 - user924如果你要绘制多个视图,可以使用两种不同的画笔来分别进行描边和填充。这样就不必不断重置画笔了。
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
}
你用边框的颜色和矩形加上边框的大小画一个矩形,然后改变油漆的颜色,再用正常大小重新画一个矩形。