2012-11-21 28 views
0

如何繪製一個基本上在畫布上創建一個洞的矩形?例如,假設我有一個用於像素藝術的圖像編輯應用程序。用戶觸摸屏幕的一個區域,並繪製一個紫色的矩形。哎呀,他把矩形放在了錯誤的地方。用戶需要使這個紫色的正方形變成透明的,以便他可以將其重新繪製在正確的位置。如何在我的自定義視圖(擴展視圖)中在Android中繪製透明矩形?

我該怎麼做?我已經使用PorterDuff.Mode.Clear,myPaintColor.setColor(Color.TRANSPARENT)等,但都給出了相同的結果。一個醜陋的黑色廣場,它應該是透明的。我的畫布最初是透明的,並且可以通過getDrawingCache保存爲透明的.PNG,所以我知道畫布開始時是透明的。但是,我如何幫助畫紫色方格的使用者再次使畫布變得透明?謝謝。我一直試圖弄清楚這一點,閱讀關於此的所有文檔,但我無法弄清楚。

這是我有:

  Rect square = new Rect(); 
      Paint drawColor = new Paint(); 
      //drawColor.setColor(UserColor.get(i)); 
      drawColor.setXfermode(new PorterDuffXfermode(Mode.CLEAR)); 
      square.set(CanvasFractionWidth * UserX.get(i), CanvasFractionHeight * UserY.get(i), (CanvasFractionWidth * UserX.get(i)) + (CanvasFractionWidth), (CanvasFractionHeight * UserY.get(i)) + CanvasFractionHeight); 
      canvas.drawRect(square, drawColor); 
+0

Mmhh,如果你有一個自定義視圖,那麼就不要畫在你的onDraw方法什麼。 .. –

回答

2

RoboDemo,我用這個:

 Paint p = new Paint(); 
     p.setXfermode(new PorterDuffXfermode(Mode.CLEAR)); 
+1

不幸的是,它仍然畫了一個黑色的方塊... – Michael

+0

所以,也許你得到了錯誤的方法。用戶可以繪製基元或自由格式? – Snicolas

+0

基元,如在廣場設置爲一個大小?是。 – Michael

相關問題