我需要将我设置到imageview的图像保存到内部存储器中,这样当用户离线时我可以直接从存储器中使用这些图像。
到目前为止,我已尝试使用Target
但我在将位图设置为imageview时遇到错误。
有没有办法在不影响性能的情况下做到这一点?
private static Target getTarget(final String url, final ImageView thumbIV){
Target target = new Target() {
@Override
public void onBitmapLoaded(final Bitmap bitmap, Picasso.LoadedFrom loadedFrom) {
new Thread(new Runnable() {
@Override
public void run() {
thumbIV.setImageBitmap(bitmap);
File file = new File(Environment.getExternalStorageDirectory().getPath() + "/" + url);
try {
file.createNewFile();
FileOutputStream ostream = new FileOutputStream(file);
bitmap.compress(Bitmap.CompressFormat.JPEG, 80, ostream);
ostream.flush();
ostream.close();
} catch (IOException e) {
Log.e("IOException", e.getLocalizedMessage());
}
}
}).start();
}
答案 0 :(得分:0)
Picasso会自动为您缓存。您可以影响磁盘/内存缓存的大小。例如
long maxHeapSize = Runtime.getRuntime().maxMemory();
Picasso picasso = new Picasso.Builder(context)
.memoryCache(new LruCache((int)maxHeapSize/3))
.build();