之前用的是canvas.drawColor(),可以用純色填充。
其實可以用
canvas.drawColor(Color.TRANSPARENT, PorterDuff.Mode.CLEAR);
測試效果很好。
下面是一篇對 setXfermode
設定兩張圖檔相交時的模式
我們知道 在正常的情況下,在已有的圖像上繪圖将會在其上面添加一層新的形狀。 如果新的Paint是完全不透明的,那麼它将完全遮擋住下面的Paint;
而setXfermode就可以來解決這個問題
一般來說 用法是這樣的
Canvas canvas = new Canvas(bitmap1);
paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN));
canvas.drawBitmap(mask, 0f, 0f, paint);
就是在圖檔bitmap1上面繪制圖檔mask時 處理兩者相交時候顯示的問題
canvas原有的圖檔 可以了解為背景 就是dst
新畫上去的圖檔 可以了解為前景 就是src
Mode的值 如下圖