Android 为什么应用程序使用“/layout mdpi”即使手机显示为“普通XHDPI”

Android 为什么应用程序使用“/layout mdpi”即使手机显示为“普通XHDPI”,android,android-layout,Android,Android Layout,我今天在修复一个bug时遇到了这种奇怪的布局行为 我有四种布局: /res/layout/my.xml /res/layout大型hdpi/my.xml /res/layout mdpi/my.xml /res/layout-sw600dp-mdpi/my.xml 我使用的手机是我最喜欢的三星Note 2测试设备,为了获取屏幕信息,我使用了该应用程序 问:我完全希望使用/res/layout中的布局,因为我没有定义一个符合XHDPI标准的布局,而是使用了/res/layout mdpi中的布局!

我今天在修复一个bug时遇到了这种奇怪的布局行为

我有四种布局:

/res/layout/my.xml /res/layout大型hdpi/my.xml /res/layout mdpi/my.xml /res/layout-sw600dp-mdpi/my.xml 我使用的手机是我最喜欢的三星Note 2测试设备,为了获取屏幕信息,我使用了该应用程序

问:我完全希望使用/res/layout中的布局,因为我没有定义一个符合XHDPI标准的布局,而是使用了/res/layout mdpi中的布局!为什么?这对我来说毫无意义

请参见以下应用程序的附加图像:

/res/layout/中的布局仅在绝对没有符合相关标准的布局时使用。系统将根据提供的限定符查找可以从中提取资源的最详细文件夹。因此,如果您有一个/res/layout-sw600dp-xhdpi/文件夹,它将首先检查其中的资源。然后它将转到/res/layout xhdpi/文件夹。如果在那里找不到,它将沿着dpi文件夹向下移动,直到最后一个选择是最通用的/res/layout/folder

在本例中,没有-xhdpi文件夹。有一个-large hdpi文件夹,但手机与-large限定符不匹配,因此跳过它。没有-hdpi文件夹。有一个-mdpi文件夹,因此它会检查那里的资源。它找到它,所以它使用它

在/res/layout/中的布局仅在绝对没有符合相关标准的布局时使用。系统将根据提供的限定符查找可以从中提取资源的最详细文件夹。因此,如果您有一个/res/layout-sw600dp-xhdpi/文件夹,它将首先检查其中的资源。然后它将转到/res/layout xhdpi/文件夹。如果在那里找不到,它将沿着dpi文件夹向下移动,直到最后一个选择是最通用的/res/layout/folder


在本例中,没有-xhdpi文件夹。有一个-large hdpi文件夹,但手机与-large限定符不匹配,因此跳过它。没有-hdpi文件夹。有一个-mdpi文件夹,因此它会检查那里的资源。它找到它,所以它使用它

太好了!感谢您的解释-我认为整个过程都是在精确的布局文件夹名称上进行的。这对我现在来说是有意义的;mdpi布局将适合hdpi或更好的屏幕。这里有更好、更详细的解释。这个过程实际上比我所说的要复杂得多。对我来说,这是非常不直观的,我有一个特定的布局,需要不同的mdpi设备,这意味着我需要一个“布局mdpi”文件夹和一个“布局hpdi”与每一个其他文件,而不仅仅是能够离开这些文件在常规布局文件夹!伟大的感谢您的解释-我认为整个过程都是在精确的布局文件夹名称上进行的。这对我现在来说是有意义的;mdpi布局将适合hdpi或更好的屏幕。这里有更好、更详细的解释。这个过程实际上比我所说的要复杂得多。对我来说,这是非常不直观的,我有一个特定的布局,需要不同的mdpi设备,这意味着我需要一个“布局mdpi”文件夹和一个“布局hpdi”与每一个其他文件,而不仅仅是能够离开这些文件在常规布局文件夹!