【问题标题】:ImageView scales large images down to small blurry imagesImageView 将大图像缩小为小的模糊图像
【发布时间】:2012-12-21 08:28:24
【问题描述】:

我正在使用 Ignition 类 RemoteImageView 来异步下载和显示图像。 RemoteImageView 是 ImageView 的子类。

我正在下载 600x600 的图像并以各种尺寸显示它们……260x260、100x100 等。我注意到图像看起来模糊、不那么清晰,并且带有伪影。

我对图像渲染了解不多,但我注意到当我在谷歌浏览器中查看相同的图像并尝试在浏览器中缩小时,它会暂时呈现出模糊的外观,然后线条会变直,图像再次变得不那么模糊和清晰 - 所以我猜有某种渲染效果用于显示我没有用我的 ImageView 做的图像。

图像来自服务器;我无法更改这些原始图像或向我发送不同尺寸的图像。

我还能做什么——希望不会增加很多低效率,因为有时我需要在 ListView 中一次在屏幕上显示几十个这样的小图像?

【问题讨论】:

    标签: android android-layout


    【解决方案1】:

    尝试使用android:scaleType="centerCrop"

    您必须在 ImageView 的宽度和高度上设置硬编码的 dp 尺寸才能以这种方式获得所需的效果,但我基本上使用的是这个解决方案。嗯,不是真的。但是,如果您想指定生成的缩放(和裁剪)图像的尺寸,您可以这样做。

    http://developer.android.com/reference/android/widget/ImageView.ScaleType.html

    【讨论】:

    • 好吧,如果我想显示图像的一小部分未缩放的部分,那就太好了。我需要显示整个图像 - 缩小到所需的大小。
    • @ChadSchultz 你现在使用什么比例尺?
    • @ChadSchultz BTW 文档特别说 centerCrop 执行缩放:“均匀缩放图像(保持图像的纵横比),使图像的两个尺寸(宽度和高度)都等于或大于比视图的相应尺寸(减去填充)。” -- 它只是根据需要进行裁剪以保持纵横比
    • 我的错误——你是对的,当我应该使用 centerCrop 时,我使用的是 centerInside。但是,由于所有图像都是方形的,因此实际上并没有什么区别……而且模糊性仍然存在。
    • @ChadSchultz stackoverflow.com/questions/4821488/… --- 你可能不得不自己动手做缩放。第二个答案看起来很有希望
    猜你喜欢
    • 2012-04-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-20
    • 2016-10-20
    • 2020-12-09
    • 1970-01-01
    • 2018-11-27
    相关资源
    最近更新 更多