Canvas在drawBitmap方法中一直忽略Paint

时间:2012-12-04 14:39:09

标签: android

我想在画布上绘制位图(带有指定的颜色)。

    Paint paint = new Paint();
    paint.setAntiAlias(true);
    paint.setStyle(Paint.Style.FILL);
    paint.setColor(Color.RED);

// create bitmap

    canvas.drawBitmap(bitmap, 0, 0, paint);

嗯,位图在画布上可见,但是drawable的颜色没有改变。 问题在哪里?

2 个答案:

答案 0 :(得分:3)

  

我想在画布上绘制位图(带有指定的颜色)。

位图包含图像,以单色绘制图像没有任何意义。你期望它做什么?画一个红色矩形?形状可以用颜色绘制,而不是图像......

Color的{​​{1}}属性将被忽略。该Paint参数用于传递其他设置,例如消除锯齿。

我希望这可以澄清。

答案 1 :(得分:0)

paint.setColor(Color.RED)无关紧要。如果您的图片带有Alpha通道并且您希望它以单一颜色绘制,请改为使用ColorFilter

paint.setColorFilter(new PorterDuffColorFilter(Color.RED, PorterDuff.Mode.SRC_IN);