2015-11-03 92 views
0

我有一个对话框,其中包含下面的XML代码,我想要做的就像第一个屏幕截图中显示的内容(屏幕上显示的内容当我把ImageView的空):当我将Image设置为ImageView时,Linearlayout更改大小(比例)

Normal app running without image inside imageView

但是当我把图片中的ImageView的内部使用的代码:

ImageView img1 = (ImageView) myView.findViewById(R.id.imgView1); 
img1.setImageResource(R.drawable.attention); 
img1.setScaleType(ImageView.ScaleType.CENTER_INSIDE); 

屏幕变为:

When app runs and image inside the imageView

我不想要包含imageViews改变口粮的linearlayout,我把重量(“3”)始终保持相同的比例,但虽然它改变。

我的XML源之上:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent"> 

<LinearLayout 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:layout_margin="10dp" 
    android:orientation="vertical" 
    android:weightSum ="10"> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_margin="3dp" 
     android:gravity="center" 
     android:orientation="vertical" 
     android:layout_weight="1" 
     android:background="@drawable/dialog_bg"> 

     <TextView 
      android:id="@+id/txt_field1" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:textColor="@color/black" /> 
    </LinearLayout> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_margin="3dp" 
     android:gravity="center" 
     android:orientation="vertical" 
     android:layout_weight="1" 
     android:background="@drawable/dialog_bg"> 

     <TextView 
      android:id="@+id/txt_field2" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:paddingRight="10dp" 
      android:paddingLeft="10dp" 
      android:textColor="@color/black"/> 
    </LinearLayout> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_margin="3dp" 
     android:gravity="left" 
     android:orientation="vertical" 
     android:layout_weight="2" 
     android:background="@drawable/dialog_bg"> 

     <TextView 
      android:id="@+id/txt_field3" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:paddingRight="10dp" 
      android:paddingLeft="10dp" 
      android:paddingTop="10dp" 
      android:paddingEnd="10dp" 
      android:textColor="@color/black" /> 
    </LinearLayout> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_margin="3dp" 
     android:gravity="left" 
     android:orientation="horizontal" 
     android:layout_weight="3" 
     android:background="@drawable/dialog_bg"> 

     <ImageView 
      android:id="@+id/imgView1" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:paddingRight="10dp" 
      android:paddingLeft="10dp" 
      android:paddingTop="10dp" 
      android:paddingEnd="10dp" 
      android:layout_weight="1" 
      android:scaleType = "fitXY" /> 

     <ImageView 
      android:id="@+id/imgView2" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:paddingRight="10dp" 
      android:paddingLeft="10dp" 
      android:paddingTop="10dp" 
      android:paddingEnd="10dp" 
      android:layout_weight="1" 
      android:scaleType = "fitXY"/> 

    </LinearLayout> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_margin="3dp" 
     android:gravity="left" 
     android:orientation="horizontal" 
     android:layout_weight="3" 
     android:background="@drawable/dialog_bg"> 

     <ImageView 
      android:id="@id/imgView3" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:paddingRight="10dp" 
      android:paddingLeft="10dp" 
      android:paddingTop="10dp" 
      android:paddingEnd="10dp" 
      android:layout_weight="1" 
      android:scaleType = "fitXY"/> 

     <ImageView 
      android:id="@id/imgView4" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:paddingRight="10dp" 
      android:paddingLeft="10dp" 
      android:paddingTop="10dp" 
      android:paddingEnd="10dp" 
      android:layout_weight="1" 
      android:scaleType = "fitXY"/> 

    </LinearLayout> 

</LinearLayout> 
</RelativeLayout> 

请任何建议如何绕过这个问题。谢谢。

回答

1

我不能完全肯定这是它,但尝试的权重改变LinearLayout的的android:layout_height0dp而不是wrap_content。如果不是这样,那么它会更好,因为它不需要wrap_content所做的额外计算。

(还可以,但不相关的:在你的代码更改fill_parentmatch_parent它的更新,就是应该采用时下。)

+0

非常感谢您@se_bastiaan。您的解决方案完美工作,我将“android:layout_height”值更改为0dp。 – MysteryDev

相关问题