0

我们在 B64 中有一个图像,我们想使用该图像作为通用图像加载器中的加载图像,而不是从 url 加载更好的图像。因此,我们从 b64 中的该 url 创建一个位图并将其转换为 BitmapDrawable。如果我这样做,结果会很好:

imageView.setImageDrawable(bitmapDrawable)

但是,在 DisplayImageOptions 上,如果我在加载时将该 bitmapDrawable 设置为图像,则该图像永远不会显示。我正在执行以下操作:

final DisplayImageOptions imageOptions = mDisplayImageOptionsDefaultBuilder.
        .showImageOnLoading(bitmapDrawable)
        .showImageOnFail(bitmapDrawable)
        .showImageForEmptyUri(bitmapDrawable)
        .build()

如您所见,我不仅在加载时将可绘制位图设置为图像,而且在失败时也设置为图像(因为我们不希望在从 url 加载更好的图像时出现错误时更改该图像)。结果是永远不会显示位图可绘制对象。我们做错了什么?

更新:调试发生的事情后,我发现问题不是可绘制的位图,它受到支持并且工作正常。问题是我使用的是默认显示选项构建器(mDisplayImageOptionsDefaultBuilder),而不是在某些时候:

final DisplayImageOptions imageOptions = mDisplayImageOptionsDefaultBuilder.
        .showImageOnLoading(loadingResource)
        .showImageOnFail(errorResource)
        .showImageForEmptyUri(errorResource)
        .build()

所以通用图像加载器中有一个错误,因为现在我正在创建一个显示图像选项:

.showImageOnLoading(bitmapDrawable)

另一个“解决方案”是:

final DisplayImageOptions imageOptions = mDisplayImageOptionsDefaultBuilder.
        .showImageOnLoading(0)
        .showImageOnLoading(loadingResource)
        .showImageOnFail(errorResource)
        .showImageForEmptyUri(errorResource)
        .build()

但是在内部它存储了一个存储的资源,所以我的drawable没有显示,而是存储的资源。创建一个新的 DisplayImageOptionsBuilder 对我有用,但如果 showImageOnLoading 设置为可绘制对象,那么旧资源会自动清除。

提前致谢。

4

2 回答 2

0

UIL 仅支持以下方案:

"h t t p://site.com/image.png" // from Web
"file:///mnt/sdcard/image.png" // from SD card
"file:///mnt/sdcard/video.mp4" // from SD card (video thumbnail)
"content://media/external/images/media/13" // from content provider
"content://media/external/video/media/13" // from content provider (video thumbnail)
"assets://image.png" // from assets
"drawable://" + R.drawable.img // from drawables (non-9patch images)

使用这些方案。

于 2016-01-21T08:07:24.697 回答
0

通用图像加载器还提供使用背景功能。请检查以下 coed:-

这里 Uri 是文件夹图像的路径或图像的 URL。

imageLoader.loadImage(YOUR_URL, new SimpleImageLoadingListener() {
@Override
public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) {
   super.onLoadingComplete(imageUri, view, loadedImage);
   layout.setBackgroundDrawable(new BitmapDrawable(loadedImage));
  }
});
于 2016-01-21T08:09:50.870 回答