Android - 使用 picasso 加载图像而不将其存储在缓存中
Android - use picasso to load image without storing it in cache
我想使用 picasso 将 url 中的图像加载到占位符中,但不将该图像存储在缓存中 - 换句话说,我希望图像直接从网上下载到磁盘然后在需要时从磁盘加载。我知道有一个名为 RequestCreator 的 class,您可以在其中指定内存策略 - 有没有人有使用 picasso/requestcreator 来执行类似操作的示例?
所以..像这样:
RequestCreator requestCreator = new RequestCreator();
requestCreator.memoryPolicy(MemoryPolicy.NO_CACHE);
....
合并为:
Picasso.with(context).load(someurl).fit().placeholder(someplaceholder).into(sometarget)..
Picasso 通过 Picasso 构建器中的 skipMemoryCache()
支持这一点。示例如下所示。
Picasso.with(context).load(imageUrl)
.error(R.drawable.error)
.placeholder(R.drawable.placeholder)
.skipMemoryCache()
.into(imageView);
对于新的 API,您应该像这样使用它,这样它就不会查找它并将其存储在缓存中:
Picasso.with(context).load(imageUrl)
.error(R.drawable.error)
.placeholder(R.drawable.placeholder)
.memoryPolicy(MemoryPolicy.NO_CACHE, MemoryPolicy.NO_STORE)
.into(imageView);
NO_CACHE
Skips memory cache lookup when processing a request.
NO_STORE
Skips storing the final result into memory cache. Useful for one-off requests to avoid evicting other bitmaps from the cache.
对于 picasso:2.71828
或更高版本,使用以下内容跳过使用磁盘缓存 networkPolicy(NetworkPolicy.NO_CACHE)
:
Picasso.get()
.load(camera_url)
.placeholder(R.drawable.loader2)
.networkPolicy(NetworkPolicy.NO_CACHE, NetworkPolicy.NO_STORE)
.into(img_cam_view);
只需将其附加在 url 的末尾即可。
"?=" + System.currentTimeMillis();
毕加索 2.5.0
如果您使用 Picasso 从 Internet 加载图像,则必须使用 NetworkPolicy 属性。
.networkPolicy(NetworkPolicy.NO_STORE)
但是实时内存缓存(不是磁盘缓存)很有用,您可能希望保留它。
我想使用 picasso 将 url 中的图像加载到占位符中,但不将该图像存储在缓存中 - 换句话说,我希望图像直接从网上下载到磁盘然后在需要时从磁盘加载。我知道有一个名为 RequestCreator 的 class,您可以在其中指定内存策略 - 有没有人有使用 picasso/requestcreator 来执行类似操作的示例?
所以..像这样:
RequestCreator requestCreator = new RequestCreator();
requestCreator.memoryPolicy(MemoryPolicy.NO_CACHE);
....
合并为:
Picasso.with(context).load(someurl).fit().placeholder(someplaceholder).into(sometarget)..
Picasso 通过 Picasso 构建器中的 skipMemoryCache()
支持这一点。示例如下所示。
Picasso.with(context).load(imageUrl)
.error(R.drawable.error)
.placeholder(R.drawable.placeholder)
.skipMemoryCache()
.into(imageView);
对于新的 API,您应该像这样使用它,这样它就不会查找它并将其存储在缓存中:
Picasso.with(context).load(imageUrl)
.error(R.drawable.error)
.placeholder(R.drawable.placeholder)
.memoryPolicy(MemoryPolicy.NO_CACHE, MemoryPolicy.NO_STORE)
.into(imageView);
NO_CACHE
Skips memory cache lookup when processing a request.
NO_STORE
Skips storing the final result into memory cache. Useful for one-off requests to avoid evicting other bitmaps from the cache.
对于 picasso:2.71828
或更高版本,使用以下内容跳过使用磁盘缓存 networkPolicy(NetworkPolicy.NO_CACHE)
:
Picasso.get()
.load(camera_url)
.placeholder(R.drawable.loader2)
.networkPolicy(NetworkPolicy.NO_CACHE, NetworkPolicy.NO_STORE)
.into(img_cam_view);
只需将其附加在 url 的末尾即可。
"?=" + System.currentTimeMillis();
毕加索 2.5.0
如果您使用 Picasso 从 Internet 加载图像,则必须使用 NetworkPolicy 属性。
.networkPolicy(NetworkPolicy.NO_STORE)
但是实时内存缓存(不是磁盘缓存)很有用,您可能希望保留它。