gpt4 book ai didi

来自 InputStream 的 Android 通用图像加载器 URI

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:26:35 25 4
gpt4 key购买 nike

想问一下从InputStream输入URI的UIL。因为我的图像来自 ZIP,然后我必须提取它才能显示该图像。因为图像太大,我必须使用 UIL 库,任何人都知道如何从 InputStream 插入 UIL。

最佳答案

我认为您可以像从数据库中加载图像一样执行此操作 - Can Universal image loader for android work with images from sqlite db?

让我们选择自己的方案,以便我们的 URI 看起来像 "stream://..."

然后实现ImageDownloader。我们应该用我们的方案捕获 URI 并返回图像流。

public class StreamImageDownloader extends BaseImageDownloader {

private static final String SCHEME_STREAM = "stream";
private static final String STREAM_URI_PREFIX = SCHEME_STREAM + "://";

public StreamImageDownloader(Context context) {
super(context);
}

@Override
protected InputStream getStreamFromOtherSource(String imageUri, Object extra) throws IOException {
if (imageUri.startsWith(STREAM_URI_PREFIX)) {
return (InputStream) extra;
} else {
return super.getStreamFromOtherSource(imageUri, extra);
}
}
}

然后我们将这个`ImageDownloader 设置到配置中:

ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(context)
...
.imageDownloader(new StreamImageDownloader(context))
.build();

ImageLoader.getInstance().init(配置);

然后我们可以执行以下操作来显示来自数据库的图像:

ImageStream is = ...; // You have image stream
// You should generate some unique string ID for this stream
// Streams for the same images should have the same string ID
String imageId = "stream://" + is.hashCode();

DisplayImageOptions options = new DisplayImageOptions.Builder()
...
.extraForDownloader(is)
.build();

imageLoader.displayImage(imageId, imageView, options);

关于来自 InputStream 的 Android 通用图像加载器 URI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21769099/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com