2011-03-20 48 views

回答

2

你需要檢查圖像的每個像素,並改變其顏色。 你會在這裏得到你的答案Post

+2

這是最快的方法嗎?我有點震驚,沒有內置的功能...... – 2011-03-21 12:28:55

13

您需要爲傳遞給位圖的顏料設置Alpha值。

http://developer.android.com/reference/android/graphics/Paint.html#setAlpha%28int%29

值的變化從0到255

編輯:

Paint p = new Paint(); 
//Set Blue Color 
p.setColor(Color.WHITE); 
//Set transparency roughly at 50% 
p.setAlpha(125); 
+0

我不明白。如果只有一個參數,我如何設置某種顏色是透明的?要選擇一種顏色,我至少需要三個參數。你能寫一個簡短的例子,說明如何用透明的白色在表面視圖上顯示位圖嗎? – 2011-03-21 08:27:44

+3

我應該早一點回復,但這裏就是這樣。 p.setColor(Color.White)將您的位圖的顏色設置爲白色。透明度由一個值控制 - aplha介於0和255之間。0是完全透明的,255是完全不透明的 - 因此p.setAlpha(125)位於中間某處。這是否清理了事情? – 2011-08-02 12:51:55

+1

這只是將整個位圖設置爲半透明,並不能達到預期的效果。 – 2012-11-27 20:54:42

1

另一種方法是在畫布上繪製透明顏色(繪圖孔)。 bitmapu需要alpha通道。

//Set transparent paint - you need all of these three 
    Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG); 
    paint.setXfermode(new PorterDuffXfermode(Mode.SRC_OUT)); 
    paint.setColor(Color.TRANSPARENT); 

    // Do you wanna soften? 
    // Set paint transparency: 
    // 0 = transparent ink, no visible effect 
    // 255 = full ink, hole in the bitmap 
    p.setAlpha(192); 

    // Do you want some blur? 
    // Set blur radius in pixel 
    paint.setMaskFilter(new BlurMaskFilter(10, Blur.NORMAL));