我有以下ImageView
。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/layout_main"
android:background="?attr/colorPrimary"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:minHeight="?attr/actionBarSize"
android:background="?attr/colorPrimary">
</android.support.v7.widget.Toolbar>
<ImageView
android:id="@+id/image_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:adjustViewBounds="false"
android:scaleType="center"
android:src="@drawable/drink" />
</LinearLayout>
我尝试过各种类型的scaleType
。我找不到一个好的scaleType
,它对“大”图像和“小”图像都有好处。
ImageView
,则应执行缩小。ImageView
,则应显示原始图像。 没有放大 我曾尝试fitCenter
。它适用于1,2,3但不是4.它在小图像上执行不必要的“放大”。
当使用大图像2432x3286时。
使用小图像96x96时。 正在执行不需要的扩展
如果我尝试使用center
,则效果不佳2.大图像将被裁剪。
小图片没问题。不会进行放大。
当使用大图像2432x3286时,会发生不需要的裁剪(秸秆对象不再可见)
知道我怎样才能有更好的scaleType
?
或者,我必须检查图片大小并将其与ImageView
尺寸进行比较,以确定是否正确scaleType
?我不想去那条路,因为我的图像输入是Uri
形式。确定图像尺寸对我来说很麻烦。
答案 0 :(得分:1)
android:scaleType="centerInside"
或强>
设置宽度和高度wrap_content并为您的imageview设置最大高度和宽度,如下所示:
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:scaleType="fitCenter"
android:maxHeight="100dp"
android:maxWidth="100dp"
android:adjustViewBounds="true"
android:src="@mipmap/ic_launcher"/>