如何将位图背景替换为某种颜色

时间:2014-01-30 04:31:39

标签: java android background bitmap android-canvas

我有一个透明背景的PNG图像(R.drawable.circle)。我需要在画布中绘制它,这就是我将其转换为Bitmap的原因。但我希望透明背景是Color.WHITE。我怎么做?有可能吗?

private void drawer(Canvas canvas) {
      Bitmap animal = BitmapFactory.decodeResource(getResources(),R.drawable.circle);
      canvas.drawBitmap(Bitmap.createScaledBitmap(animal,100,100, false), 0, 0, null);
}

2 个答案:

答案 0 :(得分:1)

试试这种方式

private void drawer(Canvas canvas) {

        Bitmap bitmapOriginal = BitmapFactory.decodeResource(getResources(), R.drawable.circle);
        Bitmap bitmapNew = Bitmap.createBitmap(bitmapOriginal.getWidth(), bitmapOriginal.getHeight(), Config.ARGB_8888);
        bitmapNew.eraseColor(Color.WHITE); // color that You want to set

        canvas.drawBitmap(bitmapNew, 0, 0, null);
        canvas.drawBitmap(bitmapOriginal, 0, 0, null);

    }

答案 1 :(得分:0)

在绘制位图之前,使用所需的背景颜色填充画布,例如

canvas.drawColor(Color.WHITE);

顺便说一下,您不需要编写低级别的绘图代码,只是为了在背景颜色上呈现位图资源。您可以简单地使用带有src和背景的ImageView。