Android'drawable'文件夹选择问题

时间:2012-06-05 15:41:55

标签: android

我目前正在构建Android应用程序(游戏)。我已经创建了所有图像的ldpi,mdpi和hdpi(所有这些图像的尺寸都已经过适当的计算)。

当我在Samsung S3上测试游戏时,以下代码的值为2.0。

getResources().getDisplayMetrics().density;

这是正确的,应用程序中使用的所有图像都是从drawable-hdpi文件夹中自动选择的。

但是,当我在Google Nexus One上测试应用程序时,上面的代码评估为1.5(正确),但仍然会自动选择drawable-hdpi文件夹中的图像。

作为参考,我正在以这种方式加载位图:

BitmapFactory.Options bmpFactoryOptions = new BitmapFactory.Options();
bmpFactoryOptions.inScaled = false;
Bitmap exampleBitmap = BitmapFactory.decodeResource(gamePanel.getResources(), R.drawable.example, bmpFactoryOptions);

编辑:删除第二行仍然无法解决问题。

我做错了吗?如果是这样,什么?或者,有解决方法吗?

非常感谢提前。

2 个答案:

答案 0 :(得分:4)

三星Galaxy SIII是一款XHDPI设备。

Nexus One是一款HDPI设备。

参考:

http://blog.blundellapps.com/list-of-android-devices-with-pixel-density-buckets/

因此,由于您没有XHDPI资源,因此它使用下一个最接近SIII(hdpi)的资源。

答案 1 :(得分:1)

我很确定S3(2.0密度)是xhdpi,而Nexus One(1.5密度)是hdpi。 1.0是参考密度(mdpi)。最可能发生的是S3回退到hdpi文件夹,因为你没有提供xhdpi资源,而且Nexus One正在从hdpi文件夹中正确拉出。