2013-02-11 72 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