屏幕密度混乱

时间:2017-08-18 07:48:22

标签: android android-layout android-drawable android-screen-support

让我先讲述我所做的研究。

developer.android.com上,它声明应该采取以下措施来支持不同的屏幕尺寸:

  
      
  • res/layout/my_layout.xml // layout for normal screen size ("default")

  •   
  • res/layout-large/my_layout.xml // layout for large screen size

  •   
  • res/layout-xlarge/my_layout.xml // layout for extra-large screen size

  •   
  • res/layout-xlarge-land/my_layout.xml // layout for extra-large in landscape orientation

  •   

它还指出drawables应该像这样缩放:

  

要为不同密度创建替代位图可绘制,您应遵循六个广义密度之间的3:4:6:8:12:16缩放比例。例如,如果您有一个位图可绘制的中等密度屏幕的48x48像素,则所有不同的大小应为:

     
      
  • 36x36(0.75x)用于低密度
  •   
  • 中等密度
  • 的48x48(1.0x基线)   
  • 72x72(1.5x)高密度
  •   
  • 96x96(2.0x),用于超高密度
  •   
  • 144x144(3.0x),用于额外超高密度
  •   
  • 192x192(4.0x),用于额外超高密度
  •   

现在这是我的问题,假设我在横向模式下为nexus 10设计。然后,此设备将属于res/layout-large-land/,其屏幕密度将低于(2.0x) for extra-high-density - xhdpi

但我不明白的是,nexus 10有一个平板电脑尺寸屏幕,但它属于xhdpi,这意味着将从drawable资源文件夹中获取的图像将在此设备上显示得更小。我已经在nexus 10和手机上对此进行了测试,并且nexus 10上的图像要小得多,正如我预期的那样。

我已经对此感到困惑已有一段时间了,我做了很多研究。任何人都可以帮我澄清一下这个问题。谢谢。

1 个答案:

答案 0 :(得分:0)

Nexus 10肯定有平板电脑尺寸屏幕(10.1英寸),但由于其xhdpi仅为299,因此属于Pixel Per inch(ppi)(超高密度)级别。您可以轻松识别哪个级别通过检查它的DPI,设备会陷入其中。以下是不同类别的密度。

  • ldpi - 120 dpi
  • mdpi - 160 dpi
  • hdpi - 240 dpi
  • xhdpi - 320 dpi
  • xxhdpi - 480 dpi

在这种情况下,同样拥有平板电脑尺寸屏幕的三星Galaxy Tab 10英寸平板电脑的PPI仅为149.因此,它属于mdpi级别。请参阅this site,这有助于轻松了解哪个设备具有dpi及其密度等级。我们还建议您This website了解有关不同设备屏幕尺寸的详情。

只是一个附加信息,Nexus 10平板电脑是xhdpi设备,但使用xxhdpi类作为其启动器图标(可以说是应用程序中最重要的部分)。