【问题标题】:Quality of rendering shadow in transparent png on AndroidAndroid 上透明 png 中渲染阴影的质量
【发布时间】:2011-01-13 22:13:48
【问题描述】:

当使用具有精细渐变阴影的透明 PNG 图像时,Android 屏幕上的阴影周围总是有一条边缘线。它没有在 emualator 或 Exclipse 中显示。见照片。

我想知道是否有办法改进这一点。这与 Android 屏幕无法显示所有 24 位颜色或缩放和重新采样图像有关吗?

在此示例中,图像被加载到 ImageButton 视图中。我试过它作为源或背景,它是相同的质量。

【问题讨论】:

    标签: android png


    【解决方案1】:

    您看到的伪影被称为“条带”,这是您的显示器为每像素 16 位的结果。

    解决此问题的最佳方法是在 Photoshop 或 Paint.NET 中为您的图像资源添加一些“噪点”。

    或者,您可以将窗口设置为 32bpp,并将以下行添加到活动的 onCreate(),介于 super.onCreate()setContentView() 之间。 :

        getWindow().setFormat(PixelFormat.RGBA_8888);
    

    【讨论】:

    • 谢谢。 getWindow().setFormat(PixelFormat.RGBA_8888);确实有效!不确定在 Photoshop 中添加“噪点”是什么意思?上面的图像/按钮使​​用模糊作为阴影效果。
    • @Reuben:有趣,不知道这个技巧。我遇到了条带问题,使用这种setFormat 方法有什么特别的缺点吗?
    • 缺点是您的窗口需要两倍的 RAM,并且由于访问了两倍的内存,渲染可能会更慢(尤其是软件渲染)。
    • 正如预测的那样,上升了两个厘米。 :-) 顺便说一句,值得注意的是,谷歌已经悄悄地将 8888 设为默认格式(从 Honeycomb 开始的 IIRC)。
    • “噪声”是指在 Photoshop、Gimp 等位图图形包中找到的该名称的效果。向图像添加“噪声”是添加随机斑点,在这种情况下,用于消除在 16bpp 显示器上使用纯渐变时经常出现的不需要的条带效果。
    猜你喜欢
    • 2011-12-08
    • 2018-05-10
    • 1970-01-01
    • 2022-07-17
    • 1970-01-01
    • 2018-01-12
    • 2022-06-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多