当minSdkVersion =“10”时,Android白色图像不是白色

时间:2012-01-04 13:50:58

标签: android colors image

我在布局中有一个ImageView。 Layaout背景为白色(@android:color / white),而ImageView中包含* .png图片。但是这张照片上的白色与布局中的白色不同,它是灰色的。a http://desmond.imageshack.us/Himg513/scaled.php?server=513&filename=1325684647707.jpg&res=medium 我试图改变文件的格式,不同的颜色深度等但它没有帮助。然后我从清单中删除minSdkVersion,它解决了问题。但我真的需要清单中的这个标签。有没有人知道哪种格式的图片或我需要改变什么来修复它?

非常感谢

2 个答案:

答案 0 :(得分:1)

我已经回答了类似的谬误:Image does not show completely white despite it's correctly white 从那里复制:

问题的原因是,无论APK文件中的原始位图格式如何,所有位图都会被压缩(在我的情况下会变成索引的256色!wtf?)。

我找不到阻止它的方法,所以如果有人知道正确的解决方案,请告诉。

但是,我找到了两种解决白色问题的方法。

1)每位图:说,我们有一个名为@drawable/mypng的可绘制位图资源,导致问题。我们需要添加一个额外的XML drawable drawable / mypng_nofilter.xml

<?xml version="1.0" encoding="utf-8"?>
<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
    android:src="@drawable/mypng"
    android:filter="false"
/>

并改为使用@drawable/mypng_nofilter

2)对于整个活动:在活动onCreate方法中我们需要添加

getWindow().setFormat(PixelFormat.RGB_565);

现在窗口的颜色深度为16位,所有位图都显示为“正确”白色。

同样,我更喜欢32位颜色深度,但我不知道如何控制编译时图像压缩。

答案 1 :(得分:-1)

而不是使用默认的白色。重新定义xml中的白色并使用相同的

在res-&gt;下创建colors.xml。值

<?xml version="1.0" encoding="utf-8"?>
<resources><color name="white">#ffffff</color> </resources>

@color/white"示例android:background="@color/white"

在您的xml中使用此白色