2011-08-17 57 views
2


我想創建一個8個圖像按鈕的佈局,填滿屏幕。
我有以下代碼:Android相對佈局引力填充問題

<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中完成?
如果是這樣,那麼最有效的方法是什麼?
謝謝。

+1

嘗試提供'機器人:layout_weight = 「1」'每個的ImageButton。 – SamSPICA

+0

ok.will試着讓你知道 – Brahadeesh

+0

謝謝你的工作。 – Brahadeesh

回答

3

嘗試向每個ImageButton提供android:layout_weight="1"

+0

我剛剛意識到它已經被提出。對不起,搞砸你的收件箱,@Brahadeesh ... :) – SamSPICA

+1

沒問題。我現在搞砸了你:) – Brahadeesh

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和重力配置?

+0

權重「」1「或」0「都是重要的,任何更大或更小的值將分別用1或0代替。 – SamSPICA

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>