我正在更新我的 Android 应用程序,并意识到我已经为每个可能的屏幕尺寸(小布局、大布局等)创建了一个布局。浏览每个 XML 文件并手动制作一个小改变。我正在尝试创建一个 XML 文件来支持所有屏幕尺寸。在查看了有关 stackoverflow 的 Android 文档和其他问题后,LinearLayout 似乎是最佳选择,因为您可以为布局中的每个项目提供 weightSum 和 layout_weight。这没有按预期工作(见下面的代码和图像)。我这样做正确吗?我是否必须返回为每个可能的屏幕尺寸创建一个 RelativeLayout?
我的图像是一个可绘制的文件夹,我的布局位于一个布局文件夹中。
XML
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/bg"
android:gravity="center"
android:orientation="vertical"
android:weightSum="100" >
<ImageButton
android:id="@+id/btn1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:scaleType="fitCenter"
android:src="@drawable/image0"
android:background="@null"
android:layout_weight="30" />
<ImageButton
android:id="@+id/btn2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:scaleType="fitCenter"
android:src="@drawable/image1"
android:background="@null"
android:layout_weight="30" />
<ImageButton
android:id="@+id/key"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="30"
android:background="@null"
android:src="@drawable/image0_key" />
<TextView
android:id="@+id/tvScore"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:text="Score: 0"
android:textAppearance="?android:attr/textAppearanceMedium"
android:layout_weight="10"
android:layout_gravity="left" />
</LinearLayout>
结果视图(项目溢出和布局与屏幕尺寸不一致)
连结一:
药片:
编辑:我添加了以下 drawable-____ 文件夹。它产生相同的结果。