Android:价值优先

Android:价值优先,android,device,Android,Device,在我的应用程序的res文件夹中,有不同设备的值文件夹。例如: 值mdpi 值hdpi 值-v14 值-v17 值-w480 值-w720 等等 我想知道Android的这些文件夹的优先级是什么 让我们想象两个设备: first : 480*800 hdpi v14 second: 320*480 mdpi v17 third : 720*1280 hdpi v17 Android会为每个文件夹使用哪个文件夹?您可以找到资源文件夹的优先级。基本上,它用于支持不同的设备和配置 An

在我的应用程序的
res
文件夹中,有不同设备的值文件夹。例如:

值mdpi
值hdpi
值-v14
值-v17
值-w480
值-w720

等等

我想知道Android的这些文件夹的优先级是什么

让我们想象两个设备:

first : 480*800  hdpi v14  
second: 320*480  mdpi v17  
third : 720*1280 hdpi v17  

Android会为每个文件夹使用哪个文件夹?

您可以找到资源文件夹的优先级。基本上,它用于支持不同的设备和配置

Android使用某种逻辑来确定设备的最佳匹配资源文件夹。这一点在本文中进行了解释

关于您的设备查询:

  • 第一个:480*800 hdpi v14——值hdpi
  • 第二个:320*480 mdpi v17——值mdpi
  • 第三:720*1280 hdpi v17——值-w480
在您提供的列表中,
values-w480(最小宽度为480dp的设备,仅来自API 13)
具有最高的优点。因此,无论哪个设备满足该标准,它都将从该文件夹中获取资源

值vXX(API>=XX的设备)
的优点最低。因此,如果没有获取其他文件夹,则只有Android从该文件夹获取资源。有关该主题的更多信息,请列出资源限定符。表中按资源限定符的优先顺序列出了资源限定符

  • 第一种情况:正常的hdpi-小于480dp的宽度——因此值为hdpi
  • 第二种情况:正常mdpi-小于480dp宽度--值mdpi (mdpi值的权重大于v17值)
  • 第三种情况:hdpi装置,宽度为480dp(720/1.5=480)API 17-- 值-w480

这是Android文档中的说明:

请注意,当Android系统选择使用哪种资源时 运行时,它使用某些逻辑来确定“最佳匹配” 资源。也就是说,您使用的限定符不必完全匹配 所有情况下的当前屏幕配置,以便系统正常运行 使用它们。具体来说,在根据大小选择资源时 限定符,系统将使用为屏幕设计的资源 如果没有更好的资源,则比当前屏幕小 匹配(例如,大屏幕将使用正常大小的屏幕 资源(如有必要)。但是,如果唯一可用的资源是 大于当前屏幕,系统将不使用它们和您的 如果没有其他资源与设备匹配,应用程序将崩溃 配置(例如,如果所有布局资源都标记为 xlarge限定符,但设备是正常大小的屏幕)。对于 有关系统如何选择资源的更多信息,请阅读how Android会找到最匹配的资源


此外,当您使用最小宽度/高度限定符时,请务必记住,例如,sw600dp不是指“最小宽度600px”,而是指“最小宽度600*像素”。一开始我不明白:)可能对我这样的新手有用