1

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

4

3 回答 3

2

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

请参阅此处Color的文档以使用其 RGB 和 Alpha 通道定义颜色(您希望保留每个像素的 Alpha 值,并且只更改 RGB 值)。另请参阅此处的文档Bitmap

于 2012-10-31T10:35:15.910 回答
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());
于 2012-10-31T10:39:35.343 回答
-1

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

于 2012-10-31T10:36:12.010 回答