1

我目前正在开发一个幻灯片应用程序,它在自己的 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 中,所以我有一点延迟。

问题是,如何预加载下一张图片?

4

0 回答 0