ListView中有许多图像。
我的list_view_item.xml(ivEventImage中的图片):
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_height="wrap_content"
android:layout_width="match_parent">
<TextView
android:id="@+id/tvText"
android:autoLink="web"
android:linksClickable="true"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<ImageView
android:id="@+id/ivEventImage"
android:adjustViewBounds="true"
android:scaleType="fitXY"
android:src="@null"
android:layout_width="match_parent"
android:layout_height="match_parent" />
它们有不同的尺寸 - 640 x 480,1280 x 720,1920x1080,1080x1920等。除了不同的尺寸,不同的方向 - 肖像或风景。 并且所有图像都有不同的宽高比。
如何在ImageView中显示图像,但宽高比为3:2,并且图像高度不适合仅显示图像的中间部分。但不要打破比率。
黑色方块 - ivEventImage。 左 - 1280x720,右 - 1080x1920(例如)。
答案 0 :(得分:3)
使用centerCrop
代替fitXY
android:scaleType
,如下所示......
android:scaleType="centerCrop"
所以,ImageView
xml将是......
<ImageView
android:id="@+id/ivEventImage"
android:adjustViewBounds="true"
android:scaleType="centerCrop"
android:src="@null"
android:layout_width="match_parent"
android:layout_height="match_parent" />