如何使用Picasso加载布局背景并缓存它

时间:2018-02-14 18:20:34

标签: android performance android-activity

我的View(LinearView)上有一个drawable on the background的背景。如何在onSaveInstanceState中保存Drawable以提高显示速度?实际上图片是从互联网下载的,当它被下载时,它被设置为查看背景。如果onResume()中的background!= null,我不应该再次从Internet加载它。

我试过Picasso,但我需要将图片加载到View中,而不是ImageView,所以我使用了这样的东西:

final ImageView img = new ImageView(view.getContext());
Picasso.with(img.getContext())
        .load(mImagesUrls[index])
        .into(img, new com.squareup.picasso.Callback() {
            @Override
            public void onSuccess() {
               view.setBackground(img.getDrawable());
            }

            @Override
            public void onError() {
            }
        });

它会下载图像,但它似乎并没有缓存它,每次加载大约需要4秒......

我也尝试使用MyClass实现Picasso.Target,但它并没有调用onBitmapLoaded()方法。哪里可能有问题?

提前谢谢大家的答案!

1 个答案:

答案 0 :(得分:0)

.into添加.networkPolicy(NetworkPolicy.OFFLINE)之前

像这样:

.load(mImagesUrls[index])
.networkPolicy(NetworkPolicy.OFFLINE)
        .into(img, new com.squareup.picasso.Callback() {

Read more