为什么?在Android手机/模拟器上显示压缩的图像?

时间:2011-08-16 02:22:48

标签: android image compression

基本上我想在布局上使用高清背景,但它不是原始图像,而是显示极度压缩。

示例:

来源图片:

enter image description here

Android模拟器版本:

enter image description here

我想也许它只是模拟器,但它在手机本身看起来很糟糕。我知道这些是高品质的三星Galaxy S手机(毕竟预装了 Avatar 附带的手机)。

有没有人知道如何在不压缩的情况下加载图片?源文件是未压缩的png。

这是它的价值代码:

 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" android:weightSum="1"     android:background="@drawable/background" android:id="@+id/blank">

</LinearLayout>

2 个答案:

答案 0 :(得分:2)

想出来:问题是图像会自动从AGB888转换为RGB565色彩空间。为了防止这种情况,请确保图像具有Alpha通道,并且位于“原始”目录中,而不是“可绘制”目录。

答案 1 :(得分:0)

aapt可能会在构建apk时压缩图像,但该压缩应该是无损的。问题可能在其他地方。这有两种可能性。

如果您的图像资源是从res/drawable加载到非mdpi的设备(或模拟器)上,那么它将按照here所述进行缩放。一种解决方案是将资源放在res/drawable-nodpi文件夹中。另一种方法是提供几种密度特定的图像。

如果您的背景图片与视图的大小不匹配,则会出现另一个问题。视图将自动缩放图像以适合视图大小。您可以通过将背景定义为XML Bitmap并将gravity设置为无法缩放的内容(例如center)来阻止此操作。