我目前正在开发一个幻灯片应用程序,该应用程序在自己的ImageSwitcher实现中显示带有动画的多个图像。在显示ImageSwitcher之前,我使用fetch()
用Picasso预加载(缓存)图像。
下一张图片加载时将调用以下方法:
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时,内存会在每个图像开关上升起。
但我有一个大问题。图像之间的时间是固定的,Picasso需要一些时间将图像(甚至从本地缓存)加载到imageView中,所以我有一点延迟。
问题是,我如何预加载下一张图片?