我有一个透明的 PNG 图像,代表一个带有蓝色光芒的蓝牙图标,从 Photoshop 导出:
在 HTC Desire 上,创建了一个简单的图像视图,并将 PNG 用作位图。如果图像视图周围的背景是白色的,则细微差别之间存在差异。如果背景为黑色,则隐藏差异。
如果我使用 ADB 进行屏幕截图,则问题不可见:
可能的原因: 屏幕使用的位深度率高于位图所使用的位深度率。例如。RGB24 与 RGB16。通过这样做,与位图编码相比,屏幕具有更多的白色细微差别。显示时,位图的像素近似于新的位深度要求,但由于使用了近似值而无法正确匹配背景细微差别。例如。RGB16->RGB24 意味着 C24 = 255*C16/31 。
如果我使用屏幕捕捉软件,位深度可能会缩小到更窄的位深度值 (RGB16),因此所有细微差别都合并在一起,并近似为更简单的 16 位颜色。这就是为什么我用照相机来说明这个问题。
问题是如何解决这个问题?
我已经尝试使用以下参数加载位图:resample.inPreferredConfig = Config.ARGB_8888; 但是没用。
我只需要显示一个透明图像,例如带有 GFX 效果的图标:阴影、发光等。我也很乐意使用灰度蒙版(黑色=>白色蒙版来指示像素透明度,但没有找到一种方法)。
谢谢你的时间!