我查找了如何支持屏幕尺寸,但是有关屏幕尺寸支持的android指南在解释上确实含糊不清。
所以我的问题是我如何用最小的宽度限定符支持不同的屏幕尺寸?
我有dimens.xml文件,其值为sw320dp,sw480dp,sw600dp和sw720dp。
320dp:典型的电话屏幕(240x320 ldpi,320x480 mdpi,480x800 hdpi等)。 480dp:约5英寸(480x800 mdpi)的大手机屏幕。 600dp:7英寸平板电脑(600x1024 mdpi)。 720dp:10英寸平板电脑(720x1280 mdpi,800x1280 mdpi等)。
这在android文档中有所说明,但是当我尝试Nexus 3.7英寸hdpi的仿真器时,它使用的Nexus 5的调暗值是5.0英寸xxhdpi。
推荐哪种方式支持所有屏幕尺寸?
谢谢
答案 0 :(得分:1)
Nexus 5的屏幕尺寸为360x640 dp。 最小宽度的最大值在您的定义集中不大于360,是sw320dp
。这就是为什么两个仿真器都使用相同的值。
但是,这主要是重点。支持所有屏幕尺寸的正确方法是创建可以拉伸和收缩以填充任何电话的布局。当然,在某些情况下可能需要为不同的屏幕尺寸定义不同的尺寸,但是您可以通过简单地使用带有权重的LinearLayout
或带有匹配约束的ConstraintLayout
来完成很多工作。
根据我自己的专业经验,使用swXXXdp
的最常见原因是为手机和平板电脑创建不同的基本布局。也就是说,每个活动在res/layout/
中都有一个布局XML文件,但有些活动在res/layout-sw600dp/
中也有一个特定于平板电脑的布局文件。根据设备尺寸定义尺寸非常罕见。