让我先讲述我所做的研究。
在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上的图像要小得多,正如我预期的那样。
我已经对此感到困惑已有一段时间了,我做了很多研究。任何人都可以帮我澄清一下这个问题。谢谢。
答案 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
类作为其启动器图标(可以说是应用程序中最重要的部分)。