为什么android在显示png文件时会丢失图像质量?

时间:2012-10-30 11:10:24

标签: android image

我想在android上显示一个png图像。这是图像文件:

enter image description here

右端比左侧稍暗。

但是在Android应用程序上丢失的图像质量(使用ImageView):

enter image description here

请注意红框中的部分。颜色没有平滑变化。

但是,如果我使用我的Android手机的浏览器,它播放效果很好(所以这不是手机屏幕的原因):

enter image description here

这是我的Android代码,非常简单:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:orientation="vertical"
              android:layout_width="fill_parent"
              android:layout_height="fill_parent">
    <ImageView android:layout_width="wrap_content"
               android:layout_height="wrap_content"
               android:background="@drawable/hhh"/>
</LinearLayout>

其中hhh是我在此处发布的第一张图片,位于res/drawable

我在我的Android手机(android 2.3.6)和android模拟器(用android 2.2 / 2.3 / 4.0)上测试它,都显示不好。但它在我的android pad(android 4.0.3)上播放效果很好。

问题是什么,以及如何解决?

3 个答案:

答案 0 :(得分:7)

res/drawable中的图片已被压缩。 This is supposed to be lossless,但我过去听说过类似的问题。

将其移至res/raw,然后试一试。

答案 1 :(得分:0)

尝试将以下内容添加到Activity,看看是否有帮助。

@Override
public void onAttachedToWindow() {
   super.onAttachedToWindow();
   Window window = getWindow();
   //eliminates color banding
   window.setFormat(PixelFormat.RGBA_8888);
}

答案 2 :(得分:-1)

这个问题众所周知这是一个渐变条带问题,我有这个问题并通过添加噪声来解决,例如http://planetphotoshop.com/say-goodbye-to-gradient-banding.html