动态更改Android Java中图像的前景色(保留Alpha透明度)

时间:2012-10-31 10:30:14

标签: java android image bitmapimage

我有一个透明背景的红球图像。我想以编程方式将球的颜色改为许多其他颜色而不影响背景,即背景应保持透明。如何在Android中实现这一目标?

3 个答案:

答案 0 :(得分:2)

您可以使用Bitmap类以这种方式修改图片,例如使用setPixel()方法。您只需要确保颜色仍然将其alpha设置为透明。

有关使用RGB和Alpha通道定义颜色的信息,请参阅Color文档here(您希望保留每个像素的Alpha值,并仅更改RGB值)。另请参阅Bitmap文档here

答案 1 :(得分:1)

尝试:

//Bitmap bmp
//int color 
int[] pixels = new int[bmp.getWidth() * bmp.getHeight()];
bmp.getPixels(pixels, 0, bmp.getWidth(), 0, 0,
            bmp.getWidth(), bmp.getHeight());
for (int i = 0; i < pixels.length; i++) {
pixels[i] &= color;
}
Bitmap newBmp = Bitmap.createBitmap(bmp.getWidth(),
bmp.getHeight(), Config.ARGB_8888);
newBmp.setPixels(pixels, 0, newBmp.getWidth(), 0, 0, newBmp.getWidth(), newBmp.getHeight());

答案 2 :(得分:-1)

您也可以使用Frame Animation来实现它。使用具有不同球颜色的相同球图像的不同图片,并使用帧动画将图像作为帧运行。如果是这样,球的颜色看起来正在改变。