如何使用Picasso从InputStream中读取图像

时间:2017-01-04 05:14:39

标签: android picasso okhttp3

我使用response.body().byteStream()

获得了一个InputStream

如何使用Picasso从InputStream加载图片?

1 个答案:

答案 0 :(得分:1)

使用Custom Picasso Downloader。你必须创建自定义类并在你的类中实现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();

自定义加载方法将返回一个将为Picasso处理的响应(在其构造函数中接受一个I​​nputStream或Bitmap参数)。

最后

picassoInstance.load(path).into(imageView);

了解更多详情

Custom Picasso Downloader