【问题标题】:Is it possible to set ImageSize with displayImage ()?是否可以用 displayImage() 设置 ImageSize?
【发布时间】:2013-07-25 09:20:28
【问题描述】:

我有一个关于 https://github.com/nostra13/Android-Universal-Image-Loader 库的问题。

我正在使用 imageLoader.displayImage(...) 将图像从我的数据库加载到列表视图中的图像视图。

文档是这样说的:

ImageSize targetSize = new ImageSize(120, 80); // result Bitmap will be fit to this size
imageLoader.loadImage(imageUri, targetSize, displayOptions, new SimpleImageLoadingListener() {
    @Override
    public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) {
        // Do whatever you want with Bitmap
    }
});

是否可以为 imageLoader.displayImage 方法声明一个目标大小?

【问题讨论】:

  • .displayImage(...) 没有这种可能性。此大小将根据传入的ImageView 计算,并考虑其大小和比例类型。您只能在DisplayImageOptions 中指定比例类型。为什么要 t0 为 displayImage(...) 声明目标大小?
  • 因为我正在使用自定义图像视图来放大图像,而且它让我的 ui 口吃。我总是提前知道我将拥有什么样的图像尺寸,所以我只想将其添加为输入,这样我就不必使用可放大的图像视图(它在 ui 线程上进行放大)。
  • 也许DisplayImageOptions.scaleType(ImageScaleType.NONE) 是您需要的?然后 ImageLoader 不会缩放原始图像。
  • 将 scaletype 设置为 none 没有帮助。我的第 3 方图像高档图书馆仍然结结巴巴的 ui。我正在使用这个库顺便说一句:gist.github.com/tprochazka/5486822
  • 另外,使用 android 4.3,我的第 3 方升级库已损坏。 :(

标签: android universal-image-loader


【解决方案1】:

您可以使用方法:public void loadImage(String uri, ImageSize targetImageSize, DisplayImageOptions options, ImageLoadingListener listener)来设置ImageSize参数。

下载的图像将被解码并缩放为大小等于或大于(通常稍大)的位图。

【讨论】:

    【解决方案2】:

    我建议您使用 Picasso 作为 Universal-Image-Loader 的替代品。它非常时尚,性能非常好。它提供了大量的Api。您可以使用以下sn-p声明目标大小。

    Picasso.with(context)
      .load(url)
      .resize(50, 50)
      .centerCrop()
      .into(imageView)
    

    【讨论】:

    • 是否支持从 sqlite 数据库加载图片?
    【解决方案3】:

    我目前使用的是,我没有使用 ImageLoader 设置图像的尺寸,而是简单地使用 scaleType = centerCrop; 设置包含它的布局的尺寸

    话虽如此,我仍然建议您改用 @Vipul 的回答那样改用毕加索。我遇到了不稳定性,在异步请求完成之前图像就被弄乱了。这在毕加索身上从未发生过。

    【讨论】:

      猜你喜欢
      • 2014-07-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-21
      • 2010-12-24
      • 2014-05-02
      • 2023-03-30
      • 1970-01-01
      相关资源
      最近更新 更多