当我将Image设置为ImageView时,Linearlayout更改大小(比例)
问题描述:
我有一个对话框,其中包含下面的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>
请任何建议如何绕过这个问题。谢谢。
答
我不能完全肯定这是它,但尝试的权重改变LinearLayout
的的android:layout_height
到0dp
而不是wrap_content
。如果不是这样,那么它会更好,因为它不需要wrap_content
所做的额外计算。
(还可以,但不相关的:在你的代码更改fill_parent
到match_parent
它的更新,就是应该采用时下。)
非常感谢您@se_bastiaan。您的解决方案完美工作,我将“android:layout_height”值更改为0dp。 – MysteryDev