我使用抗锯齿来让我的图片更加平滑。使用抗锯齿时,图像周围会绘制一个黑色边框。这是因为Android使用黑色并将其与图像中的黄色混合。这是一个普遍存在的问题!当我绘制一个矩形并将alpha值设置为127时,图像也会变得相当暗。Android不应该使用黑色来绘制透明度,而应该使用白色。
有什么解决这个问题的方法吗?
以下是在画布上绘制半透明矩形的示例源代码。然而,矩形同样很暗,但它应该很亮。
这些图像是使用以下库呈现的SVG图形: http://code.google.com/p/svg-android/ 我认为我找到了bug。问题在于SurfaceView。它的背景是黑色的。当我使用上面的代码并在ImageView上显示它时,如果UI元素背后的颜色是黑色,则会出现相同的半透明错误。 SurfaceView的背景颜色始终为黑色。如果我使用setBackgroundColor将其更改为白色,则SurfaceView变为白色,但是白色背景将覆盖我使用OpenGL绘制的所有其他图像。我认为这些必须交换。首先应该绘制背景颜色,然后才是OpenGL内容。
有什么解决这个问题的方法吗?
以下是在画布上绘制半透明矩形的示例源代码。然而,矩形同样很暗,但它应该很亮。
Bitmap bmp = Bitmap.createBitmap(200, 200, Config.ARGB_8888);
Canvas canvas = new Canvas(bmp);
Paint rPaint = new Paint();
rPaint.setColor(Color.parseColor("#F7E836"));
rPaint.setAlpha(127);
rPaint.setStyle(Paint.Style.FILL);
canvas.drawRect(0, 0, 100, 100, rPaint);
这些图像是使用以下库呈现的SVG图形: http://code.google.com/p/svg-android/ 我认为我找到了bug。问题在于SurfaceView。它的背景是黑色的。当我使用上面的代码并在ImageView上显示它时,如果UI元素背后的颜色是黑色,则会出现相同的半透明错误。 SurfaceView的背景颜色始终为黑色。如果我使用setBackgroundColor将其更改为白色,则SurfaceView变为白色,但是白色背景将覆盖我使用OpenGL绘制的所有其他图像。我认为这些必须交换。首先应该绘制背景颜色,然后才是OpenGL内容。