2017-01-10 2 views
1

Мне нужно сохранить изображение, которое я устанавливаю для просмотра изображений во внутреннюю память, так что, когда пользователь отключен, я могу использовать эти изображения непосредственно из памяти. До сих пор я пробовал использовать Target, но я получаю ошибку при настройке растрового изображения на изображение. Есть ли способ сделать это, не влияя на производительность?Сохранение изображения из Picasso в память

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

Picasso автоматически будет кэшировать вас. Вы можете влиять на размер кеша диска/памяти. Например,

long maxHeapSize = Runtime.getRuntime().maxMemory(); 

    Picasso picasso = new Picasso.Builder(context) 
      .memoryCache(new LruCache((int)maxHeapSize/3)) 
      .build(); 
+0

В случае если я должен был запустить приложение в автономном режиме, он будет отображать правильные изображения? – Shahal