【发布时间】:2017-11-21 16:13:27
【问题描述】:
我正在尝试使用自定义 Picasso 下载器加载的图像填充 RecyclerView 项目,我注意到应用程序正在使用大量内存并且滚动不流畅。图像是从 obb 扩展 zip 文件加载的。这是我下载的自定义:
public class VirtualTourDownloader implements Downloader {
private final ZipResourceFile mZipResourceFile;
private InputStream mInputStream;
public VirtualTourDownloader(ZipResourceFile zipResourceFile) {
mZipResourceFile = zipResourceFile;
}
@Override
public Response load(Uri uri, int networkPolicy) throws IOException {
String path = uri.getPath();
String idStr = "virtual/" + path.substring(path.lastIndexOf('/') + 1);
mInputStream = mZipResourceFile.getInputStream(idStr);
return new Response(mInputStream, false, mInputStream.available());
}
@Override
public void shutdown() {
try {
mInputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
带有自定义下载器的毕加索
适配器内部的初始化
Picasso.Builder builder = new Picasso.Builder(mContext).downloader(new VirtualTourDownloader(expansionFile));
mPicasso = builder.build();
onBind 将图像加载到 ImageView 中
mPicasso.load(uri).into(image);
【问题讨论】:
-
你可以调整大小然后使用调整大小方法检查你的滚动,例如:mPicasso.load(uri).resize(200,200).centerCrop().into(image);
-
Vivek,感谢您的回复。调整图像大小解决了我的问题。非常感谢