2013-03-07 24 views

回答

4

你可以簡單地做一個像素的透明使用mBitmap.setPixel (100,100,Color.TRANSPARENT);,所以基本思路是迭代的所有像素,使其透明,但是如果你必須遍歷太多的像素,它可能會很慢。

OR

可以使用PorterDuffXferMode使一個部分透明,

有關示例創建如下所述的塗料對象並將其傳遞到畫布:

Paint mPaint = new Paint(); 
mPaint.setXferMode(new PorterDuffXferMode(PorterDuff.Mode.CLEAR)); 

您可以將其傳遞到畫布上,如下所述:

Canvas c = new Canvas(mBitmap); 
c.drawCircle(cx, cy, radius, paint); 

這是爲圓,但希望你會得到提示做自定義區域根據您的需要。

如果它仍然無效,那麼您可能必須爲該特定視圖禁用Hardware Acceleration。有關更多信息,請參閱Google DOC

希望這會給你一些提示。

+0

謝謝回覆,我會嘗試它,它看起來第二個方法將是一個複雜的區域 – 2013-03-07 18:06:10

+0

更加有用@ CCMinds,我已經嘗試了第2種方法,並將其與小的修改 ** mPaint.setXfermode(新PorterDuffXfermode工作(PorterDuff.Mode.CLEAR)); ** – 2013-03-08 08:25:35

相關問題