Ast*_*hme 5 storage android caching http picasso
我正在使用picasso库来加载图像.在默认的毕加索中,它使用内部缓存来加载图像.但是根据我的app配置,我必须使用外部缓存(Cache on Disk).所以我将此代码用于磁盘上的缓存
File httpCacheDir = new File(getApplicationContext().getExternalCacheDir(),"http");
long httpCacheSize = 10 * 1024 * 1024; // 10 MiB
HttpResponseCache.install(httpCacheDir, httpCacheSize);}
Run Code Online (Sandbox Code Playgroud)
毕加索很灵活.所以现在它在外部Sd卡中缓存图像..
缓存存储在sdcard/android/data/packagename/cache/http中.缓存存储在".1",".0"中.格式所以我只是打开它们并更改为".1"到".jpg".它给出了我需要的精确图像.但是如何以编程方式完成?但毕加索本身将我的记忆缓存到我的应用程序中以将图像加载到imageview中.但我必须将它们直接保存为sdcard作为图像/将位图设置为离线模式下的壁纸?
您可以Cache
在构建Picasso
实例时提供自己的实现.这样,您可以提供额外的方法,您可以调用这些方法直接从内存缓存中检索位图.用于Picasso.Builder
为其提供自己的实现.当您使用时,with()
您正在使用静态单例内部实例,该实例设置了大多数默认值(大多数应用程序仍然需要默认值.)
随时参考您的Cache
实施并直接与之互动.Picasso旨在为您处理加载/解码和缓存,但没有理由不能围绕它进行构建.
如果您指的是磁盘缓存,那么目前没有毕加索不支持这种情况.这是设计原因,因为磁盘层缓存是由HTTP层完成的,并没有区分它.
但是,您可以更改磁盘缓存的路径.如果您使用的是OkHttpDownloader,则在构建Downloader时提供不同的文件.类似地,对于UrlConnectionDownloader,您可以扩展它并覆盖该load()
方法.