我已经绞尽脑汁(这里是android新手,所以不难做到)有一段时间试图找出如何实现这一点:
使用RelativeLayout或AbsoluteLayout以外的东西来创建它。我有 Windows 编程背景,其中设备会为您调整“绝对”定位,并且 GUI 布局不是问题。
第一个布局在模拟器中效果很好,但不适合我的 Nexus One 或任何其他与模拟器大小不同的屏幕。我预料到了这一点,因为它是绝对定位的,但还没有找到可以针对不同屏幕尺寸正确格式化的解决方案。我的目标是让布局适用于不同的屏幕尺寸和纵向/横向。
这是我当前使用的代码:[main.xml]
<?xml version="1.0" encoding="utf-8"?>
<AbsoluteLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android"
>
<Button
android:id="@+id/Button01"
android:layout_width="188px"
android:layout_height="100px"
android:text="A"
android:layout_y="50px" android:layout_x="65px" android:textSize="48sp"/>
<Button
android:id="@+id/Button02"
android:layout_width="188px"
android:layout_height="100px"
android:text="B"
android:layout_y="175px" android:layout_x="65px" android:textSize="48sp"/>
<Button
android:id="@+id/Button03"
android:layout_width="188px"
android:layout_height="100px"
android:text="C"
android:layout_y="300px" android:layout_x="65px" android:textSize="48sp"/>
</AbsoluteLayout>
使用这里其他问题的花絮,我想出了这个,它更接近,但还没有。
<?xml version="1.0" encoding="utf-8"?>
<TableLayout
android:gravity="center"
android:id="@+id/widget49"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
xmlns:android="http://schemas.android.com/apk/res/android"
>
<Button
android:id="@+id/Button01"
android:layout_width="0dip"
android:layout_weight="1"
android:text="A"
android:textSize="48sp"/>
<Button
android:id="@+id/Button02"
android:layout_width="0dip"
android:layout_weight="1"
android:text="B"
android:textSize="48sp"/>
<Button
android:id="@+id/Button03"
android:layout_width="0dip"
android:layout_weight="1"
android:text="C"
android:textSize="48sp"/>
</TableLayout>
这是 TableLayout 的图片:
任何帮助/指导将不胜感激。
使用你们俩的建议效果非常好!
对于那些感兴趣的人,这里是相对布局格式的最终 main.xml 代码,它与我尝试使用 AbsoluteLayout 执行的操作相匹配。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
xmlns:android="http://schemas.android.com/apk/res/android"
>
<Button
android:id="@+id/Button02"
android:layout_width="188dip"
android:layout_height="100dip"
android:text="B"
android:layout_centerInParent="true"
android:textSize="48sp" android:textStyle="bold" />
<Button
android:id="@+id/Button01"
android:layout_width="188dip"
android:layout_height="100dip"
android:text="A"
android:layout_centerHorizontal="true"
android:layout_above="@id/Button02"
android:layout_marginBottom="30dip"
android:textSize="48sp" android:textStyle="bold" />
<Button
android:id="@+id/Button03"
android:layout_width="188dip"
android:layout_height="100dip"
android:text="C"
android:layout_centerHorizontal="true"
android:layout_below="@id/Button02"
android:layout_marginTop="30dip"
android:textSize="48sp" android:textStyle="bold" />
</RelativeLayout>
另外,还有一个有趣的说明,可能会对将来的某人有所帮助。当我修改我发布的带有这些建议的第一个代码时,我在尝试编译时收到了此错误:“\res\layout\main.xml:9:错误:错误:找不到与给定名称匹配的资源(在“layout_above”处,值为“@id/Button02”)。
通过谷歌搜索可能的原因,我发现由于对 Button02 的引用(通过 Button01 代码)发生在 Button02 实际创建之前,因此生成了错误。所以请注意在最终代码中声明了 Button02FIRST.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)