2012-08-11 155 views
1

我想畫一些文字到畫布上,並且想要清除從特定區域(由Rect定義的區域)抽出的所有內容。畫布:清除矩形但保留內容的其餘部分

enter image description here

我畫品紅色文字和想清楚一切都在灰色和把一切都在白色的盒子。我得到了白色區域作爲rect。

+0

您可以使用畫布對象的drawRect方法。 – Renard 2012-08-11 10:26:33

+0

我不想畫它,我想清楚它 – 2012-08-11 10:33:09

+0

與您選擇的顏色擦除和繪製它有什麼區別?只需調用drawRect 4次來清除白色矩形外的區域。 – Renard 2012-08-11 10:35:31

回答

1

試試這個。繪製四個矩形,顏色設置爲白色。

  • 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);

這可能幫助ü

0

對於透明塗料使用:

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起作用(如果啓用了硬件加速)