我目前正在开发一个幻灯片应用程序,它在自己的 ImageSwitcher 实现中显示多个带有动画的图像。在 ImageSwitcher 显示之前,我使用 Picasso 预加载(缓存)图像fetch()
。
当下一个图像应该加载时,将调用以下方法:
public void setImageSource(final String url) {
final ImageView image = (ImageView) this.getNextView();
image.setVisibility(View.VISIBLE);
BitmapDrawable drawable = (BitmapDrawable) image.getDrawable();
if (drawable != null && drawable.getBitmap() != null) {
drawable.getBitmap().recycle();
}
PicassoUtils.getPicassoWithBasicAuthorizationFrom(user, getContext())
.load(url)
.noFade()
.fit()
.centerCrop()
.into(image);
showNext();
}
image.setVisibility(View.VISIBLE)
需要使毕加索能够读取 ImageView 的尺寸。并且需要回收以节省内存,因为当我不回收 imageView 时,每次图像切换时内存都会增加。
但我有一个大问题。图像之间的时间是固定的,毕加索需要一些时间将图像(甚至从本地缓存)加载到 imageView 中,所以我有一点延迟。
问题是,如何预加载下一张图片?