【发布时间】:2017-05-18 07:40:21
【问题描述】:
我通过使用 response.body().byteStream() 得到一个 InputStream
如何使用毕加索从InputStream加载图片?
【问题讨论】:
我通过使用 response.body().byteStream() 得到一个 InputStream
如何使用毕加索从InputStream加载图片?
【问题讨论】:
使用自定义毕加索下载器。您必须创建自定义类并在您的类中实现 Downloader(picasso) 并定义加载方法,而无需直接在 API 中公开功能。
public class DropBoxThumbDowloader implements Downloader {
private final DropBoxInteractor mDropBoxInteractor;
public DropBoxThumbDowloader(DropBoxInteractor dropBoxInteractor) {
mDropBoxInteractor = dropBoxInteractor;
}
@Override
public Response load(Uri uri, boolean localCacheOnly) throws IOException {
InputStream in = mDropBoxInteractor.getThumbnailStream(uri.toString());
return new Response(in, false, -1);
}
}
这样打电话
Picasso picassoInstance = new Picasso.Builder(context.getApplicationContext()).downloader(new DropBoxThumbDowloader(dropBoxInteractor)).build();
自定义加载方法将返回一个响应(在其构造函数中接受 InputStream 或 Bitmap 参数),该响应将为毕加索处理。
终于
picassoInstance.load(path).into(imageView);
更多详情
【讨论】: