Android:值优先

时间:2013-07-19 09:27:47

标签: android device

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

  

值-MDPI
  值 - 华电国际
  值-V14
  值-V17
  值-W480
  值-W720

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

让我们想象几个设备:

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

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

2 个答案:

答案 0 :(得分:8)

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

Android使用某种逻辑来确定设备的最佳匹配资源文件夹。这在this documentation page中有解释。

关于您的设备查询:

  • 第一名:480 * 800 hdpi v14 - values-hdpi
  • 第二名:320 * 480 mdpi v17 - values-mdpi
  • 第三名:720 * 1280 hdpi v17 - values-w480

在您提供的列表中,values-w480 (devices with lowest width of 480dp, only from API 13)具有最高优点。因此,无论哪种设备符合该标准,它都会从该文件夹中获取资源。

values-vXX (devices with API >= XX)的功绩最低。因此,如果未采用其他文件夹,则只有Android从此文件夹中获取资源。 Check the table列出了资源限定符,以获取有关该主题的更多信息。资源限定符在资源限定符的优先顺序中列在表中。

  • 第一种情况:正常hdpi - 小于480dp宽度 - 所以值-hdpi
  • 第二种情况:正常mdpi - 小于480dp宽度 - 值-mdpi (values-mdpi的权重比值-v17更多)
  • 第三种情况:宽度为480dp(720 / 1.5 = 480)的hdpi设备API 17 - 值-W480

答案 1 :(得分:1)

这是Android文档声明的内容:

  

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

Source

How Android Finds the Best-Matching Resource