2017-01-10 11 views
1

画像ビューに設定している画像を内部メモリに保存しておく必要があります。そのため、ユーザがオフラインのときにメモリから直接画像を使用できるようになります。 これまでのところ、私はTargetを使用しようとしましたが、ビットマップをイメージビューに設定する際にエラーが発生しています。 パフォーマンスに影響を与えずにこれを行う方法はありますか?ピカソからメモリに画像を保存する

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

ピカソが自動的にキャッシュします。ディスク/メモリキャッシュのサイズに影響を与えることができます。たとえば、

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

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

私がオフラインモードでアプリケーションを実行していた場合は、正しい画像を取得しますか? – Shahal

関連する問題