2013-03-24 74 views
0

我正在使用一系列ImageButton和TextView對象作爲標題。我想以統一的尺寸顯示圖像,填充屏幕的寬度(用戶界面強制進入橫向模式)。 我的XML佈局包括以下內容: 在嵌套的線性佈局對象中顯示均勻的圖像視圖

 <LinearLayout 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:orientation="vertical" > 

      <ImageButton 
       android:id="@+id/imageButtonHolidays" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:contentDescription="@string/holidays" 
       android:gravity="center" 
       android:onClick="chooseType" 
       android:scaleType="fitCenter" 
       android:src="@drawable/hagim" /> 

      <TextView 
       android:id="@+id/EditTextHoliday" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:gravity="center" 
       android:inputType="none" 
       android:onClick="chooseType" 
       android:background="@color/White" 
       android:textColor="@color/Black" 
       android:text="@string/holidays" /> 

     </LinearLayout> 

     <LinearLayout 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:orientation="vertical" > 

      <ImageButton 
       android:id="@+id/imageButtonPeople" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:contentDescription="@string/people" 
       android:gravity="center" 
       android:onClick="chooseType" 
       android:scaleType="fitCenter" 
       android:src="@drawable/people" /> 

      <TextView 
       android:id="@+id/editTextPeople" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:gravity="center" 
       android:inputType="none" 
       android:onClick="chooseType" 
       android:background="@color/White" 
       android:textColor="@color/Black" 
       android:text="@string/professions" /> 

     </LinearLayout> 

    </LinearLayout> 

據我所知,這兩個垂直的LinearLayout對象包含有完全相同的參數配置的對象,除了文本和實際的圖像對象。圖像對象的大小完全相同。儘管如此,UI顯示以下內容:

Screenshot

任何解釋,將不勝感激。

回答

0

您可以使用weights來避免這種情況。您必須將LinearLayouts的寬度設置爲0dp並設置權重1.現在,兩個子視圖都將佔用父視圖寬度的50%(這是我假設的LinearLayout,否則這將不起作用) 。

 <LinearLayout 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:orientation="vertical" > 

      <ImageButton 
       android:id="@+id/imageButtonHolidays" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:contentDescription="@string/holidays" 
       android:gravity="center" 
       android:onClick="chooseType" 
       android:scaleType="fitCenter" 
       android:src="@drawable/hagim" /> 

      <TextView 
       android:id="@+id/EditTextHoliday" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:gravity="center" 
       android:inputType="none" 
       android:onClick="chooseType" 
       android:background="@color/White" 
       android:textColor="@color/Black" 
       android:text="@string/holidays" /> 

     </LinearLayout> 

     <LinearLayout 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:orientation="vertical" > 

      <ImageButton 
       android:id="@+id/imageButtonPeople" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:contentDescription="@string/people" 
       android:gravity="center" 
       android:onClick="chooseType" 
       android:scaleType="fitCenter" 
       android:src="@drawable/people" /> 

      <TextView 
       android:id="@+id/editTextPeople" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:gravity="center" 
       android:inputType="none" 
       android:onClick="chooseType" 
       android:background="@color/White" 
       android:textColor="@color/Black" 
       android:text="@string/professions" /> 

     </LinearLayout> 

    </LinearLayout> 
+0

好的,這有幫助,但我仍然有灰色填充圖像上方和下方,儘管事實上,我將LinearLayout高度設置爲wrap_content(同樣對於兒童) – 2013-03-24 16:04:37

0

硬編碼ImageButton的寬度會產生所需的效果。沒有我想要的那樣優雅或靈活,但它可以在多個平臺上運行,所以我想我可以忍受它。

 <LinearLayout 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:gravity="center" 
     android:orientation="horizontal" > 

     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_margin="@dimen/chooser_bottom_margin" 
      android:orientation="vertical" > 

      <ImageButton 
       android:id="@+id/imageButtonVegFruit" 
       android:layout_width="200dp" 
       android:layout_height="150dp" 
       android:layout_gravity="center" 
       android:contentDescription="@string/vegetables" 
       android:gravity="center" 
       android:onClick="chooseType" 
       android:scaleType="fitCenter" 
       android:src="@drawable/fruitveg" /> 

      <TextView 
       android:id="@+id/EditTextVegFruit" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:background="@color/White" 
       android:gravity="center_horizontal" 
       android:inputType="none" 
       android:onClick="chooseType" 
       android:text="@string/VegFruit" 
       android:textColor="@color/Black" /> 
     </LinearLayout> 

     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_margin="@dimen/chooser_bottom_margin" 
      android:orientation="vertical" > 

      <ImageButton 
       android:id="@+id/imageButtonClothes" 
       android:layout_width="200dp" 
       android:layout_height="150dp" 
       android:layout_gravity="center" 
       android:contentDescription="@string/clothing" 
       android:gravity="center" 
       android:onClick="chooseType" 
       android:scaleType="fitCenter" 
       android:src="@drawable/clothes" /> 

      <TextView 
       android:id="@+id/EditTextClothes" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:background="@color/White" 
       android:gravity="center_horizontal" 
       android:inputType="none" 
       android:onClick="chooseType" 
       android:text="@string/clothing" 
       android:textColor="@color/Black" /> 
     </LinearLayout> 
    </LinearLayout> 
相關問題