2013-02-11 105 views
2

基本上我有ImageView中的一種線性佈局,當在我的每個佈局上設置重量時,其大小會與佈局中的ImageView一樣。問題是 - 只有實際改變寬度的高度保持不變。layout_weight更改圖像的尺寸

爲什麼這是一個問題?我有customView,我需要把它放在杯子上,所以它需要杯子的x,y座標,它的大小(寬度和高度)。現在我得到不同的屏幕尺寸的寬度。

佈局代碼:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="wrap_content" 
    android:layout_height="match_parent" 
    android:orientation="vertical" > 

    <LinearLayout 
     android:layout_width="wrap_content" 
     android:layout_height="fill_parent" 
     android:layout_weight="3" 
     android:orientation="horizontal" > 

     <RelativeLayout 
      android:id="@+id/rlmainContainer" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" > 

      <ImageView 
       android:id="@+id/ivCup" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:src="@drawable/cup1_r" /> 
     </RelativeLayout> 
    </LinearLayout> 

    <LinearLayout 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:layout_weight="1" > 
    </LinearLayout> 

</LinearLayout> 

Archie.bpgc溶液(設定layout_height = 「0dp」)沒有幫助。設置一些更多的圖像和他們都是用不成比例的寬度:

<?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:orientation="vertical" > 

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



      <ImageView 
       android:id="@+id/ivCup" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:src="@drawable/cup1_r" /> 

    </LinearLayout> 

    <LinearLayout 
     android:layout_width="fill_parent" 
     android:layout_height="0dp" 
     android:layout_weight="1" > 

     <ImageView 
       android:id="@+id/ivCup" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:src="@drawable/cup1_r" /> 

    </LinearLayout> 

     <LinearLayout 
     android:layout_width="fill_parent" 
     android:layout_height="0dp" 
     android:layout_weight="1" > 

     <ImageView 
      android:id="@+id/ivCup" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:src="@drawable/cup1_r" /> 

    </LinearLayout> 

     <LinearLayout 
     android:layout_width="fill_parent" 
     android:layout_height="0dp" 
     android:layout_weight="1" > 

     <ImageView 
       android:id="@+id/ivCup" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:src="@drawable/cup1_r" /> 

    </LinearLayout>  

</LinearLayout> 

回答

1

讓您layout_height = 0dp而設置的權重。它也是一個優化。

android:layout_height="0dp" 

兩個LinearLayouts。

,你也並不需要RelativeLayout,因爲你只能有一個ImageView在第一LinearLayout

+0

沒有幫助,感謝快速反應。 – user2060190 2013-02-11 05:30:00

+0

@ user2060190看起來像我誤解了這個問題。你希望你的'ImageViews'具有**等於**的高度**(我可以從你的代碼中得出結論)。如果你想讓所有圖像的寬度都相同,請移除'wrap_content'並設置一些值或'fill_parent'。 – 2013-02-11 05:43:09