28

我已经对适用于多种屏幕尺寸的构建布局进行了一些研究,我正在寻找一些说明。

为三种屏幕尺寸(小、中、大)中的每一个都制作一个单独的布局文件是常见的做法,还是可以用更简单的方法来完成?

我一直在大屏幕设备上测试我的项目,即使我使用 DIP(与密度无关的像素)来填充、边距等,当我在较小的屏幕上查看它时,它仍然会弄脏东西。我是否应该为中型屏幕设计我的项目,然后让 Android 适当地对其进行缩放?

我不确定这是否是一个好问题,但我正在寻找针对多种屏幕尺寸进行设计的常见做法。你做什么工作?

编辑:除此之外,例如,假设我有一个位于屏幕底部上方 40dip 的按钮,我应该直接写 40dip,还是应该使用某种像素数学,如 40 * screenWidth / blahblah 之类的以便它根据用户的屏幕尺寸进行缩放?我对 UI 的经验有限...

4

3 回答 3

14

关于屏幕尺寸,有两个轴需要考虑:物理尺寸和密度。密度是通过在适当的情况下提供倾角和缩放资源的测量来处理的。但密度并不总是意味着大小,反之亦然。有关机制的更多信息,请参阅http://developer.android.com/guide/practices/screens_support.html

根据您支持的每种屏幕分辨率设置不同的布局并不常见或不推荐,但为不同尺寸类别(小、中、大)设计不同的布局是完全合理的。不同大小的屏幕可能会受益于添加、删除或重新定位某些导航元素,具体取决于应用程序。

在某个尺寸等级内,您应该确保您的布局能够容忍精确屏幕分辨率的差异。正如 Falmarri 建议的那样,使用相对布局、权重和其他可用工具来让您的布局优雅地伸展。

于 2010-12-05T20:50:53.763 回答
3

一般规则是在布局 xml 中使用与密度无关的像素(倾角)来定义尺寸 - 我看到您已经这样做了。这样做我只有所有设备范围的唯一布局。需要拆分的是图形。为此,我使用了 3 个不同的可绘制目录 - “drawable-ldpi”、“drawable-mdpi”和“drawable-hdpi”。这样做是为了使图像在不同的屏幕密度(假设屏幕尺寸相同 - 例如正常)上具有相同的尺寸(比如说,以毫米为单位),它们应该按如下方式缩放:

  • 可绘制的 hdpi:150%
  • 可绘制 mdpi:100%
  • 可绘制的 ldpi:75%

可能这是一个坏建议。但是,如果您查看Google 的屏幕尺寸和密度图表,您可以决定不投入额外精力对大屏幕进行彻底测试,因为市场上几乎没有此类设备。

于 2010-12-05T20:36:35.007 回答
1

不制作单独的布局并不是真正常见的做法。只有当您有无法拉伸的图像时,这才是真正推荐的方式。

在具有更小/更大屏幕的设备上查看时,东西总是看起来有点拉伸/压缩。这就是不同尺寸屏幕的定义。您应该只使用相对布局并让 android 控制特定的像素数。

于 2010-12-05T20:20:37.537 回答