Android - 屏幕布局缩放的常用技巧

7
我知道这个话题已经被讨论过很多次了,我也读了官方和非官方的开发者指南,所以我知道理论。但是我仍然不确定应该采取哪种方式来确保我的应用在多个屏幕尺寸上看起来很好。我的应用是一个简单的导航样式应用,设计为仅支持纵向屏幕。目前我不想为横向或平板电脑等多面板屏幕制作不同的设计。我只希望每个屏幕都能按比例缩放,使其与正在显示的屏幕大小成比例 - 即文本和图像会相应缩放。我将应用程序设计为适用于经典的480x800 hdpi设备,效果很棒,我只想使它看起来与Galaxy S3 / Nexus 7等设备相称。我已经遵循以下准则:
- 使用RelativeLayout布局 - 使用DP单位进行填充/边距 - 使用SP单位设置字体 - 使用9-patch图像设置按钮
然而,我发现在更大的设备上它仍然看起来很小,而且在屏幕中间有点迷失。特别是,我的主菜单屏幕是一个由6个图像按钮组成的网格,我无法很好地缩放它们。我不想维护多个相同屏幕(normal / large / xlarge)的副本,只想有一个布局。我考虑了以下几种方法:
- 使用value-normal / value-large等文件夹存储XML文件,其中包含DP / SP值来设置图像/文本大小 - 将RelativeLayout更改为具有权重的LinearLayouts(尽管我最初遇到了LinearLayouts,并更改为RelativeLayouts)
这两种方法都有效吗?还是有更好的方法?

我不知道这是否是一个好的方法,但是你可以在运行时获取设备的尺寸并相应地缩放你的布局/视图。此外,使用“layout-weight”也是一个不错的解决方案。 - JiTHiN
1个回答

1
个人而言,我会选择第一种选项。虽然这对手机来说很有效,但在平板电脑上,布局会显得有些臃肿。因此,另一种方法是为平板电脑创建单独的布局,并将它们放置在layout-largelayout-xlarge文件夹中,分别用于7英寸和10英寸平板电脑。

谢谢,这似乎是正确的方式。 - Jonathan Wareham

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接