我的应用中有一张图片,我不想在加载时缩放。与此同时,我希望保持与Android 1.5的兼容性。
所以这是交易。如果我将图片放在drawable
下,Android 1.6+会认为它是MDPI,并相应地进行缩放。如果我将图片放在drawable-nodpi
下,Android 1.6+不会缩放它,但Android 1.5无法找到它。
如果我在两个文件夹中放置副本,Android 1.6会优先选择drawable
中的副本,并将其缩放,就像MDPI一样。而且我不想发送同一个文件的两个副本,所以无论如何这是最后的手段。
你能想出办法吗?最好是一种不涉及文件的两个副本的方式。
答案 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