Android:使用canvas.drawBitmap,图像不会保持原始颜色

时间:2011-01-19 20:33:42

标签: android canvas background alpha drawbitmap

我正在开发一个Android应用程序,我面临一个奇怪的问题。 我正在SurfaceView上进行一些图像处理。我正在使用画布和以下方法绘制处理过的图像:

canvas.drawBitmap(image, x, y, paint)

我的SurfaceView有一个彩色背景(#3500ffff,非常深绿色),一旦绘制图像,我可以注意到它的原始颜色不守恒。它有一个非常轻微的深绿色调,就像位图alpha改变一样。

有没有人遇到过这个问题?你对如何解决这个问题有所了解吗?

2 个答案:

答案 0 :(得分:1)

这将发生在16位目的地。 16位缓冲区以565格式编码像素,这使您在绿色通道中获得更高的精度,有时会产生绿色调。 32位目标/位图可以解决这个问题。

答案 1 :(得分:0)

假设您的图像不透明,您是如何定义颜色的,它不应该是透明颜色或使用某些特殊效果。尝试使用null作为paint。

另一件事是你首先绘制图像或背景?只是想知道你的绘图顺序是否正确。

如果将曲面设置为不透明,图像会改变颜色吗?

我注意到的另一件事我认为与事件同步有关的是,有时在表面上绘图会在屏幕上快速移动手指时创建一个半透明的精灵,从而初始化绘图。