Android布局按屏幕大小,而不是dpi

时间:2016-07-28 18:12:14

标签: android layout

我已经看到我的应用程序在较小的设备上存在一些问题,因为5.1英寸设备上的相同DPI也可以在3.1英寸设备上。这会导致问题,因为它会强制某些布局对象离开屏幕。根据谷歌:

另外;

320dp: a typical phone screen (240x320 ldpi, 320x480 mdpi, 480x800 hdpi, etc).
480dp: a tweener tablet like the Streak (480x800 mdpi).
600dp: a 7” tablet (600x1024 mdpi).
720dp: a 10” tablet (720x1280 mdpi, 800x1280 mdpi, etc).

然而,这个古老的设置存在一些问题;

我的S6 Edge的DPI为640,因此在此系统中将其归类为7英寸平板电脑。这是关闭,因为它只有5.1英寸。

我有一台8英寸平板电脑,320 DPI,相当于一部典型的手机'。

突然间,手机和平板电脑换了位置;因此,当内容离开屏幕时,它会使* dpi系统无用。

因此,我需要按照屏幕尺寸进行操作,因为这才是最重要的。我似乎无法找到任何东西,我查看了文档,但我找不到任何东西。我不想为每个0.1英寸创建一个布局,但每1.0(英寸)英寸。特别是对于较小的设备,这是一个问题,因为内容离开屏幕。实际上,尺寸本身很好,但屏幕上的内容是一个主要问题。

我在发布前的报告中看到,较小的设备开始将菜单按钮从屏幕上移开。对于测试的Nexus 5上的实例,广告将被推迟。

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

屏幕尺寸有资源限定符:

layout-small
layout-medium
layout-large
layout-xlarge

drawable-small...

但是,我相信你对dpi系统如何变得无用的理解有点扭曲。该系统已经到位,可以极大地帮助根据屏幕功能显示适当的资产。例如。如果您尝试在320 dpi平板电脑上放置xxhdpi图像,系统将基本上必须丢弃像素才能正确显示它。如果您使用屏幕尺寸设计布局,则会遇到类似的问题,因为屏幕高度和宽度(以dpi为基础)可能不依赖于尺寸,而是取决于屏幕密度。

就个人而言,为了确保我的布局看起来合适,我会在像Nexus S这样的小屏幕手机上测试它们,并在Nexus 6P这样的新手机上测试它们,同时保留一个布局文件。