如何绘制具有透明度的位图

时间:2011-03-20 23:13:50

标签: android bitmap

如何将给定颜色集的位图绘制为透明? 例如,我希望所有白色像素都是透明的。

3 个答案:

答案 0 :(得分: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);

答案 1 :(得分:3)

您需要检查图像的每个像素并更改其颜色。 您将在Post

中得到答案

答案 2 :(得分:1)

另一种方法是在画布上绘制透明色(绘图孔)。 位图需要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));