我一直在搜索整個晚上以某種方式爲我的繪圖應用程序實現橡皮擦功能。最常見的答案是簡單地繪製背景顏色或圖像,但這種解決方案不適用於我的應用程序,因爲我實現了多個圖層(Gimp/Photoshop風格)。如何在Android中爲繪圖應用程序實現橡皮擦
用戶應該能夠用盡可能多的圖層中提供的畫筆工具繪製線條(我的drawingview的onDraw方法將layer0 ... layerX繪製在彼此之上)。然後,如果他們選擇橡皮擦工具,它應該導致他們追蹤的當前圖層的任何區域變得透明。
我似乎無法找到合適的內置類/函數,但我不確定如何自己編寫它。我試圖做類似
Paint paint = new Paint();
paint.setAlpha(0);
,然後使用噴漆的對象進行繪製,但只繪製了一個「隱形」線。
我也嘗試使用
paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.CLEAR));
但只是似乎畫正常的和沒有效力。我可能錯誤地使用了它,但Android文檔沒有包含它所做的明確描述。我只是碰巧在一些關於修改位圖的例子中看到它。
我可以根據需要提供代碼,我只是不確定什麼會有助於解決我的問題。指向正確的方向將是最大的幫助,因爲我沒有在Google上取得成功。
因爲之前的演示代碼不再可用,並且此鏈接是一個比另一個更好的教程是,我改變這是被接受的答案。 – Robert 2013-11-10 01:13:30