Android毕加索制作手动缓存

时间:2016-09-07 06:19:58

标签: android picasso

我制作了一个将图片上传到服务器的应用,然后根据特定网址加载它。问题,如果我在上传之前知道该图像的确切URL,可以在不执行新请求的情况下对其进行缓存吗?

1 个答案:

答案 0 :(得分:0)

首先创建一个新类来获得自己的单身毕加索对象

import android.content.Context;
import com.squareup.picasso.Downloader;
import com.squareup.picasso.OkHttpDownloader;
import com.squareup.picasso.Picasso;

public class PicassoCache {

    /**
     * Static Picasso Instance
     */
    private static Picasso picassoInstance = null;

    /**
     * PicassoCache Constructor
     *
     * @param context application Context
     */
    private PicassoCache (Context context) {

        Downloader downloader   = new OkHttpDownloader(context, Integer.MAX_VALUE);
        Picasso.Builder builder = new Picasso.Builder(context);
            builder.downloader(downloader);

        picassoInstance = builder.build();
    }

    /**
     * Get Singleton Picasso Instance
     *
     * @param context application Context
     * @return Picasso instance
     */
    public static Picasso getPicassoInstance (Context context) {

        if (picassoInstance == null) {

            new PicassoCache(context);
            return picassoInstance;
        }

        return picassoInstance;
    }

} 

使用你自己的单身人士毕加索对象而不是Picasso.With()

PicassoCache.getPicassoInstance(getContext()).load(imagePath).into(imageView)

回答第三个问题:您不需要磁盘缓存操作的任何磁盘权限