我有一个带有下面XML代码的对话框,我想做的就像第一个截图中显示的那样(当我将imageview保持为空时,它正是屏幕上显示的内容):
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>
请提出任何建议如何绕过此问题。谢谢。
答案 0 :(得分:1)
我不完全确定是这样,但请尝试更改android:layout_height
的{{1}},权重为LinearLayout
而不是0dp
。如果不是这样,那么它仍然更好,因为它不需要wrap_content
所做的额外计算。
(也是,但无关:在您的代码中将wrap_content
更改为fill_parent
。它更新,是现在应该使用的内容)