2015-01-16 59 views
1

當我在Android的普通2D畫布上使用PaintColor.TRANSPARENT時,我沒有得到任何結果,我的意圖是擺脫畫布上的一些內容。我的意思是我想要處理的內容不會消失。在Android上使用透明塗料繪圖

這是我Paint代碼:

mPointFillPaint = new Paint(); 
mPointFillPaint.setColor(Color.TRANSPARENT); 
mPointFillPaint.setAntiAlias(true); 
mPointFillPaint.setStyle(Paint.Style.FILL); 
mPointFillPaint.setStrokeJoin(Paint.Join.MITER); 

回答

4

以下Paint配置應該有所幫助:

mPaint = new Paint(Paint.ANTI_ALIAS_FLAG); 
mPaint.setColor(Color.TRANSPARENT); 
mPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_OUT)); 
mPaint.setAntiAlias(true); 
+0

Mode.CLEAR應該工作了。 – njzk2

1

我發現,使用

mPaint.setColor(Color.TRANSPARENT); 
mPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_OUT)); 

mPaint.setColor(Color.TRANSPARENT); 
mPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.CLEAR)); 

只是讓我的油漆變黑。

我有另一種方法,其是引入透明的顏色我colors.xml

<color name="transparentColor">#00ffffff</color> 

我選擇了「00FFFFFF」的情況下,但我敢肯定,「00000000」也將正常工作,取決於在你的情況下。

最終代碼看起來像:

mPaint = new Paint(); 
    mPaint.setAntiAlias(true); 
    mPaint.setColor(getResources().getColor(R.color.transparentColor));