gpt4 book ai didi

android - 一般Android半透明bug

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:18:27 24 4
gpt4 key购买 nike

我使用抗锯齿使图像更平滑。使用抗锯齿时,将在图像周围绘制深色边框。发生这种情况是因为 Android 使用黑色并将其与图像中的黄色混合。这是一个生殖问题!当我绘制一个矩形并将 alpha 值设置为 127 时,图像也会变得安静。而不是使用黑色 Android 应该使用白色来绘制透明度。

有什么解决办法可以解决这个问题吗?

在 Canvas 上绘制半透明矩形的示例源代码。矩形也是暗的,但应该是亮的。

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/

我想我发现了这个错误。问题是 SurfaceView。它的背景是黑色的。当我使用上面的代码并将其显示在 ImageView 上并且 ImageView 后面的 UI 元素的背景颜色为黑色时,会出现相同的半透明错误。SurfaceView 的背景颜色始终为黑色。如果我使用 setBackgroundColor 将其更改为白色,SurfaceView 将变为白色,但白色背景将覆盖我使用 OpenGL 绘制的所有其他图像。我认为这些必须转换。首先应该绘制背景颜色,而不是 OpenGL 内容。

最佳答案

发布原始源图像的链接并展示您如何消除它们的锯齿(代码)。

当图像消除锯齿时,算法将在构成边缘的颜色之间插入颜色。所以对于你的黄色星星图像,如果背景是白色的,它会尝试在黄色和白色(较浅的黄色阴影)之间的边缘周围添加像素。这就是“平滑”图像的原因。

但是,如果图像具有索引色彩空间,则图像托盘中可能不存在那些较浅的黄色阴影,因此,您几乎可以在其位置获得任何其他颜色,无论索引中的颜色是什么关于指标值的计算。

您问题中的图像是索引 png,因此存在此问题。

如果这是问题,那么您需要将原始源图像转换为非索引色彩空间,或者在索引图像之前对它们进行抗锯齿处理,如果图像需要按比例缩放,则效果不佳您的应用程序,或者您是否需要针对各种不同的背景消除锯齿。

可能发生的另一件事是,你的抗锯齿背景与你想象的不同,特别是如果背景是黑色,黄色星号被正确地抗锯齿,发布你的代码是最简单的计算方法这个出来。

关于android - 一般Android半透明bug,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7585648/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com