在Android中,如何使用已知比例的权重垂直缩放布局?

在Android中,如何使用已知比例的权重垂直缩放布局?,android,xml,layout,android-linearlayout,Android,Xml,Layout,Android Linearlayout,我有一个320x480的现有图像,它被设置为LinearLayout的背景属性。我知道,对于不同的设备,这将导致垂直/水平拉伸不均匀,但这是可以接受的 图像分为三个部分:页眉、按钮网格和页脚。页眉为184像素,网格为240像素,页脚为56像素 如果我将父LinearLayout的weightSum属性设置为480,那么每个部分的布局权重属性将设置为其适当的像素量,那么布局将非常不对齐 所有截面的宽度均为“fill_parent”,高度均为“0dp”,顶层LinearLayout的3个子项中的任何

我有一个320x480的现有图像,它被设置为LinearLayout的背景属性。我知道,对于不同的设备,这将导致垂直/水平拉伸不均匀,但这是可以接受的

图像分为三个部分:页眉、按钮网格和页脚。页眉为184像素,网格为240像素,页脚为56像素

如果我将父LinearLayout的weightSum属性设置为480,那么每个部分的布局权重属性将设置为其适当的像素量,那么布局将非常不对齐

所有截面的宽度均为“fill_parent”,高度均为“0dp”,顶层LinearLayout的3个子项中的任何一个子项都没有填充或边距属性

理想情况下,宽度将始终延伸至整个屏幕,高度将按比例缩放,以便按钮与背景中的网格对齐


我无法将背景图像(否则我会)重新切分为多个部分。

解决了问题:IntelliJ(可能还有Eclipse)中的预览器显示的内容与真实设备显示的内容不同。事实证明,我的策略一直运行良好-预览器在使用此特定策略时效果不佳。

您的linearlayout是否设置为“填充父对象”高度?顶级linearlayout是“填充父对象”高度和宽度。每个子项的宽度为“填充父项”,高度为“0dp”,重量为上述相应值。顶级LinearLayout具有weightSum=“480”。这是您“控制”的图像吗?是巴布亚新几内亚吗?如果是这样的话,你可以简单地使用九块补丁来简化你的生活。两个问题是,它没有达到正确的比例,而且它在不同的屏幕尺寸上变换(即,一个屏幕尺寸/密度可能会降低5%,但另一个屏幕尺寸/密度会降低20%),我非常喜欢Philippe Girolami的答案:使用九块补丁。只要顶部和左侧有黑色像素,它就会按比例拉伸。