我对drawable-hdpi和drawable-mdpi很困惑

时间:2011-11-02 04:59:20

标签: android

我试图让我的Android应用程序在手机类型的设备和平板电脑上工作。对于布局我有布局 - 正常和布局 - 大,我把我的xml文件放在每个,它似乎为每个设备选择正确的一个(布局正常的手机和布局 - 大型平板电脑)。

然而,可绘制文件夹出现了问题。我有drawable-hdpi,drawable-mdpi和drawable-ldpi。平板电脑正在从drawable-mdpi拍摄图像,手机正在从drawable-hdpi拍摄图像。从阅读我一直在做这似乎是倒退???这似乎发生在模拟器和真实设备上,我可能做错了吗?我在混什么?

4 个答案:

答案 0 :(得分:8)

克莱顿,

drawable-hdpi和drawable-mdpi与屏幕本身的大小无关,而与显示器的分辨率无关。

对于iPhone 3GS和4来说,可能很容易想到这一点(请跟我说)。 4具有视网膜显示,因此具有更高的分辨率。使用与3GS一起使用的相同精灵会导致显示模糊。

Android屏幕在屏幕选项方面更加多样化。

如果您希望能够以不同的分辨率瞄准不同的布局,请尝试将布局放入/ layout-xlarge,/ layout-large等......

您可以在此处找到更多信息:

http://developer.android.com/guide/practices/screens_support.html

您可以在Android 3.2及更高版本中看到一些更改:

  

从Android 3.2(API级别13)开始,上面的大小组是   不推荐使用,您应该使用swdp配置   限定符,用于定义您所需的最小可用宽度   布局资源。例如,如果您的多窗格平板电脑布局   需要至少600dp的屏幕宽度,你应该把它放入   布局sw600dp /。使用新技术声明布局   资源将在“声明平板电脑”一节中进一步讨论   适用于Android 3.2的布局。

答案 1 :(得分:6)

ldpi,mdpi和hdpi指的是像素密度,而不是屏幕尺寸。

答案 2 :(得分:4)

接受的答案并没有解决一个严重的问题:如果你有很多drawables,你最终得到一个不必要的大apk文件,因为资源重复。唯一的解决方案是此处描述的资源别名选项: http://blog.evendanan.net/2011/03/Android-resources-and-device-fragmentation

编辑:我刚看到OP没有意识到大多数手机都有hdpi密度,而大多数平板电脑都有mdpi密度。同时平板电脑大多具有更高的分辨率。因此Android将使用较小的图片以获得更高的分辨率 您只能通过使用矢量图像或使用接受的答案和我的答案中描述的方法来克服这个问题。

答案 3 :(得分:2)

drawable-hdpi - 当设备具有高像素密度时,应用程序使用此可绘制图像 drawable-mdpi - 当设备具有中等像素密度时,应用程序使用此可绘制图像 drawable-ldpi.-application在设备具有低像素密度时使用此可绘制图像