画布:清除矩形但保留内容的其余部分
问题描述:
我想画一些文字到画布上,并且想要清除从特定区域(由Rect定义的区域)抽出的所有内容。画布:清除矩形但保留内容的其余部分
我画品红色文字和想清楚一切都在灰色和把一切都在白色的盒子。我得到了白色区域作为rect。
答
试试这个。绘制四个矩形,颜色设置为白色。
- mCanvas - 的android.graphics.Canvas
- RECT对象 - 的Rect
- XMAX - 鲆X值
-
YMAX - 鲆Y值
mCanvas.drawRect(0, 0, rect.left, yMax, paint);
mCanvas.drawRect(0, 0, xMax, rect.top, paint);
mCanvas.drawRect(0, rect.bottom, xMax, yMax, paint);
mCanvas.drawRect(rect.right, 0, xMax, yMax, paint);
这可能帮助ü
答
对于透明涂料使用:
canvas.drawRect(0, 0, rect.left, yMax, paint);
canvas.drawRect(rect.left, 0, xMax, rect.top, paint);
canvas.drawRect(rect.left, rect.bottom, rect.right, yMax, paint);
canvas.drawRect(rect.right, rect.top, xMax, yMax, paint);
或者,如果你需要另一种形状的使用路径:
Path path = new Path();
//path.addCircle(centerX, centerY, radius, Path.Direction.CCW);
path.addRect(rect, Path.Direction.CCW);
canvas.clipPath(path, Region.Op.DIFFERENCE);
canvas.drawRect(0, 0, xMax, yMax, paint);
不幸的是,clipPath只能从API 18起作用(如果启用了硬件加速)
您可以使用画布对象的drawRect方法。 – Renard 2012-08-11 10:26:33
我不想画它,我想清楚它 – 2012-08-11 10:33:09
与您选择的颜色擦除和绘制它有什么区别?只需调用drawRect 4次来清除白色矩形外的区域。 – Renard 2012-08-11 10:35:31