Android画布背景颜色与颜色值不匹配

时间:2014-07-11 13:03:21

标签: android colors android-canvas surfaceview

我创建了一个饼图SurfaceView组件。当我将背景颜色设置为#fff0f0f0时,屏幕上的颜色会呈现粉红色调。当我截取图像的屏幕截图并将其加载到绘图包中时,十六进制颜色值为f7f3f7。我正在使用以下代码来清除背景;

int backgroundColour = getResources().getColor(R.color.grey);

Paint colour = new Paint();
colour.setAntiAlias(true);
colour.setColor(backgroundColour);

canvas.drawColor(colour.getColor());

这是在我打电话之后调用的;

surfaceHolder.lockCanvas(null)

我无法弄清楚造成这个问题的原因。 alpha通道设置为FF,因此不应该从后面显示任何内容。

请注意我已尝试使用和不使用Alpha通道

1 个答案:

答案 0 :(得分:3)

由于历史原因,SurfaceView的默认颜色格式为RGB_565,这可能会产生看上去时髦的灰色(更不用说条带)了。

您可以使用SurfaceHolder#setFormat()调用将颜色格式更改为RGB_888或RGBA_8888