我有一个并排的3张图片的布局。我使用layout_weight来设置它们:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
android:background="#888888"
tools:context="test_layout_resize.MainActivity">
<RelativeLayout
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="wrap_content"/>
<RelativeLayout
android:id="@+id/layout1"
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/image1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/hotdog"/>
</RelativeLayout>
<RelativeLayout
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="wrap_content"/>
<RelativeLayout
android:id="@+id/layout2"
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/image2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/hotdog"/>
</RelativeLayout>
<RelativeLayout
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="wrap_content"/>
<RelativeLayout
android:id="@+id/layout3"
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/image3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/hotdog"/>
</RelativeLayout>
<RelativeLayout
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="wrap_content"/>
</LinearLayout>
出于某种原因,layout1,2和3的高度是原始热狗图像的高度,而不是缩小的高度:
3 hotdogs not at the top of the screen
我在ImageView.onDraw()中尝试了getParent()。requestLayout()或invalidate(),两者都没有改变任何内容。
如何让RelativeLayout的高度调整为新的ImageView高度?
答案 0 :(得分:1)
在所有ImageView中使用android:adjustViewBounds="true"
将解决您的问题。
希望它会对你有所帮助:)。