Nodpi图片与Android 1.5

时间:2011-08-17 00:08:33

标签: android drawable scaling screen-resolution

我的应用中有一张图片,我不想在加载时缩放。与此同时,我希望保持与Android 1.5的兼容性。

所以这是交易。如果我将图片放在drawable下,Android 1.6+会认为它是MDPI,并相应地进行缩放。如果我将图片放在drawable-nodpi下,Android 1.6+不会缩放它,但Android 1.5无法找到它。

如果我在两个文件夹中放置副本,Android 1.6会优先选择drawable中的副本,并将其缩放,就像MDPI一样。而且我不想发送同一个文件的两个副本,所以无论如何这是最后的手段。

你能想出办法吗?最好是一种不涉及文件的两个副本的方式。

4 个答案:

答案 0 :(得分:1)

你可以通过代码来做到这一点。 将myimage.png放在drawable文件夹中,并在drawable-nodpi文件夹中创建一个名为myimage_nodpi.xml的文件。

在这个xml文件中你放了:

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

这样,您就不必复制文件了。

在代码中,您可以检查API级别是否为4,如果是这种情况,则只加载nodpi版本:

int version = Integer.parseInt(android.os.Build.VERSION.SDK);
if(version >= 4) {
  drawable = res.getDrawable(R.drawable.myimage_nodpi);
} else {
  drawable = res.getDrawable(R.drawable.myimage);
}

免责声明:未经测试!

答案 1 :(得分:1)

我的应用程序遇到了同样的问题。幸运的是,有一个bitmap loader implementation可以解决Android漏洞问题。只需使用UnscaledBitmapLoader.loadFromResource(getResources(), R.drawable.your_id, null)

答案 2 :(得分:0)

this article不适合你吗?

似乎你可以欺骗你的编译器以允许drawable-nodpi支持,但仍然有1.5找到它。

答案 3 :(得分:0)

我建议尝试将图片放在两个文件夹中:

RES \绘制

水库\抽拉-nodpi-V4