我正在尝试创建一个8个图像按钮的布局来填充屏幕。
我有以下代码:
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:clickable="true"
android:gravity="fill"
android:background="@drawable/background">
<LinearLayout android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:scaleType="fitXY">
<ImageButton android:src="@drawable/calls_r1_c1"
android:id="@+id/basic"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:scaleType="fitXY"
android:background="@android:color/transparent"/>
<ImageButton android:src="@drawable/calls_r2_c1"
android:id="@+id/basic"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:scaleType="fitXY"
android:background="@android:color/transparent"/>
<ImageButton android:src="@drawable/calls_r3_c1"
android:id="@+id/basic"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:scaleType="fitXY"
android:background="@android:color/transparent"/>
<ImageButton android:src="@drawable/calls_r4_c1"
android:id="@+id/basic"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:scaleType="fitXY"
android:background="@android:color/transparent"/>
<ImageButton android:src="@drawable/calls_r5_c1"
android:id="@+id/basic"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:scaleType="fitXY"
android:background="@android:color/transparent"/>
<ImageButton android:src="@drawable/calls_r6_c1"
android:id="@+id/basic"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:scaleType="fitXY"
android:background="@android:color/transparent"/>
<ImageButton android:src="@drawable/calls_r7_c1"
android:id="@+id/basic"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:scaleType="fitXY"
android:background="@android:color/transparent"/>
<ImageButton android:src="@drawable/calls_r8_c1"
android:id="@+id/basic"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:scaleType="fitXY"
android:background="@android:color/transparent"/>
</LinearLayout>
</RelativeLayout>
图像按钮的宽度填充父级,但高度不是。
如何制作它们,使它们的高度变化以适应屏幕?
这是用java完成的吗?
如果是这样,最有效的方法是什么?
谢谢。
答案 0 :(得分:3)
尝试为每个ImageButton提供android:layout_weight="1"
。
答案 1 :(得分:1)
下一步做不是更好吗?
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:clickable="true"
android:background="@drawable/background">
<ImageButton android:src="@drawable/calls_r1_c1"
android:id="@+id/basic"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="10"
android:background="@android:color/transparent"/>
<ImageButton android:src="@drawable/calls_r2_c1"
android:id="@+id/basic"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="10"
android:background="@android:color/transparent"/>
<ImageButton android:src="@drawable/calls_r3_c1"
android:id="@+id/basic"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="10"
android:background="@android:color/transparent"/>
<ImageButton android:src="@drawable/calls_r4_c1"
android:id="@+id/basic"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="10"
android:background="@android:color/transparent"/>
<ImageButton android:src="@drawable/calls_r5_c1"
android:id="@+id/basic"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="10"
android:background="@android:color/transparent"/>
<ImageButton android:src="@drawable/calls_r6_c1"
android:id="@+id/basic"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="10"
android:background="@android:color/transparent"/>
<ImageButton android:src="@drawable/calls_r7_c1"
android:id="@+id/basic"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="10"
android:background="@android:color/transparent"/>
<ImageButton android:src="@drawable/calls_r8_c1"
android:id="@+id/basic"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="10"
android:background="@android:color/transparent"/>
</LinearLayout>
而不是使用RelativeLayout和重力配置?
答案 2 :(得分:1)
以这种方式尝试:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent">
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent" android:clickable="true"
android:gravity="fill" android:background="#FFFFFF">
<LinearLayout android:orientation="vertical"
android:layout_width="fill_parent" android:layout_height="fill_parent"
android:scaleType="fitXY">
<ImageButton android:src="@drawable/a" android:id="@+id/basic"
android:layout_width="fill_parent" android:layout_height="wrap_content"
android:scaleType="fitXY" android:background="@android:color/transparent"
android:layout_weight="1" />
<ImageButton android:src="@drawable/b" android:id="@+id/basic"
android:layout_width="fill_parent" android:layout_height="wrap_content"
android:scaleType="fitXY" android:background="@android:color/transparent"
android:layout_weight="1" />
<ImageButton android:src="@drawable/c" android:id="@+id/basic"
android:layout_width="fill_parent" android:layout_height="wrap_content"
android:scaleType="fitXY" android:background="@android:color/transparent"
android:layout_weight="1" />
<ImageButton android:src="@drawable/d" android:id="@+id/basic"
android:layout_width="fill_parent" android:layout_height="wrap_content"
android:scaleType="fitXY" android:background="@android:color/transparent"
android:layout_weight="1" />
<ImageButton android:src="@drawable/e" android:id="@+id/basic"
android:layout_width="fill_parent" android:layout_height="wrap_content"
android:scaleType="fitXY" android:background="@android:color/transparent"
android:layout_weight="1" />
<ImageButton android:src="@drawable/f" android:id="@+id/basic"
android:layout_width="fill_parent" android:layout_height="wrap_content"
android:scaleType="fitXY" android:background="@android:color/transparent"
android:layout_weight="1" />
<ImageButton android:src="@drawable/g" android:id="@+id/basic"
android:layout_width="fill_parent" android:layout_height="wrap_content"
android:scaleType="fitXY" android:background="@android:color/transparent"
android:layout_weight="1" />
<ImageButton android:src="@drawable/h" android:id="@+id/basic"
android:layout_width="fill_parent" android:layout_height="wrap_content"
android:scaleType="fitXY" android:background="@android:color/transparent"
android:layout_weight="1" />
</LinearLayout>
</RelativeLayout>