所以我的问题很简单——我想使用 XML 布局来精确控制小部件在多个设备上的定位。为此,我彻底阅读了有关支持多种设备的谷歌文档。根据这部分,WVGA854 和 HVGA 都被认为是“普通屏幕”尺寸。所以理论上,在 WVGA854 上放置一个小部件应该看起来与 HVGA 相同。但是,生成的屏幕截图显示不同。
小部件在 WVGA854 皮肤上显得相对较高。XML 代码如下所示,位于 layout-normal/ 文件夹下:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<ImageButton
android:id="@+id/button1"
android:src="@drawable/icon_unlock"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="300dp"
android:text="Button" />
</RelativeLayout>
我构建的绘图具有适当的比例(建议为 3:4:6:8 )。那么为什么会发生这种定位不匹配呢?我开始认为使用 XML 来定位事物是毫无结果的。我的应用程序需要非常准确的小部件定位,所以即使这种轻微的不匹配也是一个问题。有什么帮助我可以解决这个问题吗?
编辑: 我想要的是小部件的放置方式使得从顶部到底部的边距的比率在设备之间完全相同。从截图可以看出,这个比例对于WQVGA854和HVGA是不一样的。