我有一个Imageview列表,其宽度由线性布局的权重设置。如何设置Imageviews的高度以确保它们保持位图的原始宽高比被加载到图像中。
以下是我的xml的一部分:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/ll_auction"
android:weightSum="100"
android:paddingBottom="10dp">
<ImageView
android:layout_width="0dp"
android:layout_weight="30"
android:layout_height="@dimen/auction_image_height"
android:layout_gravity="center"
android:background="@drawable/image_view_background_unselected"
android:layout_margin="2dp"
android:adjustViewBounds="true"
android:id="@+id/niv_auctionImage1" />
答案 0 :(得分:0)
您可以将名为scaletype
的属性添加到imageview,并将其设置为fitxy
样品
android:scaleType="fitXY"
它会根据您在属性中指定的重量自动缩放图像
答案 1 :(得分:0)
如果要通过布局权重指定宽度,并且希望图片保持其宽高比,则需要高度为wrap_content。调整视图边界也是正确的,我会使用scaleType fitCenter。
您还需要确保将图像设置为src,而不是背景,它将始终被拉伸。
放手一搏。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/ll_auction"
android:weightSum="100"
android:paddingBottom="10dp">
<ImageView
android:layout_width="0dp"
android:layout_weight="30"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:background="@drawable/image_view_background_unselected"
android:layout_margin="2dp"
android:src="@drawable/example_image"
android:scaleType="fitCenter"
android:adjustViewBounds="true"
android:id="@+id/niv_auctionImage1" />