ImageView 中的图像显示非常模糊

Posted

技术标签:

【中文标题】ImageView 中的图像显示非常模糊【英文标题】:Image inside ImageView is showing really blurry 【发布时间】:2020-04-22 21:41:26 【问题描述】:

我正在尝试开发一个小的 android 应用程序,它将使用狗品种的图像识别。在识别出一只狗后,它会在另一个活动中保存该品种的名称,并附上一张图片。这些保存在一个 MaterialCardView 中,它有一个 Linearlayout,一个 ImageView 用于图片,一个 TextView 和一个 ImageButton 用于删除。在预览窗口中,一切看起来都很好: Preview Window ,但是当我在手机上测试时,图像非常模糊,或者非常放大,我什至不知道如何描述它: Actual app。 我尝试了很多图片,也尝试了我在网上看到的大多数解决方案,但没有任何效果。我也是android的初学者,所以它可能是我看不到的非常简单的东西。 这是布局的xml代码:

<?xml version="1.0" encoding="utf-8"?>
<com.google.android.material.card.MaterialCardView
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_
        android:layout_
        android:layout_margin="15dp"
        >


    <LinearLayout
            android:layout_
            android:layout_
            android:padding="15dp"
            android:elevation="15dp"
            android:orientation="horizontal"
            >
        <ImageView
                android:layout_
                android:layout_
                android:adjustViewBounds="true"
                android:scaleType="fitXY"
                android:src="@drawable/affenpinscher"
                android:id="@+id/img_content"

            />

        <TextView
                android:id="@+id/txv_content"
                android:layout_
                android:layout_
                android:textStyle="bold"
                android:layout_weight="100"
                android:gravity="center"
                android:padding="4dp"
                android:textSize="14sp"
                />
        <ImageButton
                android:id="@+id/ibt_delete"
                android:layout_
                android:layout_
                android:layout_weight="1"
                android:textStyle="bold"
                android:background="@android:color/transparent"
                android:src="@android:drawable/ic_delete"
                />


    </LinearLayout>

</com.google.android.material.card.MaterialCardView>

也尝试使用 android:scaleType="centerCrop" 或只是 "center",它是一样的。 图片为 220x330

【问题讨论】:

scaleType="centerInside" ,如果不能正常工作,通过wrap_content而不是150dp来改变imageView的宽高 @daniel.jbatiz 我将其更改为 scaleType=“centerInside”,它甚至不再显示图像,当我使用 wrap_content 更改时,它会围绕文本缩放,如下所示:@ 987654323@ 如何将 imageSource 设置为 imageView?有一个很棒的图像处理程序库,叫做 Picasso,它可以解决您的问题 首先,尝试使用另一个图像作为测试,以丢弃图像问题。如果这种行为现在仍然存在,请不要担心,当您要填充列表时使用 Picasso。 square.github.io/picasso 非常感谢,看来分辨率太大了,Android Drawable Importer 解决了。有点遗憾,我必须为 120 张图片(每个品种)执行此操作,但我没有找到其他解决方案 【参考方案1】:

图像模糊,因为其分辨率大于当前尺寸的 imageView 所支持的分辨率。

所以你必须调整图像的大小。 转到IDE设置->插件->搜索“Android Drawable Importer并安装它->重启IDE 安装后,右键单击可绘制文件夹并:新建-> 批量可绘制导入 -> 选择您的图像并调整其大小。

【讨论】:

以上是关于ImageView 中的图像显示非常模糊的主要内容,如果未能解决你的问题,请参考以下文章

通过 webview 显示的 Android 本地图像模糊

Wrap Content ImageView 显示全尺寸图片

相机拍摄的图像不想在 ImageView 中显示

图像未按 XML ImageView 中的定义显示

Android Glide:在加载实际图像之前显示模糊图像

为啥我裁剪的图像很小?