2012-05-01 11 views
0

私のアプリケーションには、キャッシュされる必要のある一定量の画像があります。それは約12〜15枚の画像です。キャッシュトップが必要です。私がやったことは、このようなデバイス上のディレクトリにあるファイルにイメージを保存することです。私はこのAndroidのキャッシュ方法

BitmapDrawable bg = new BitmapDrawable(BitmapFactory.decodeFile(c 
       .getFilesDir().getAbsolutePath() + "/background.txt")); 

のようにそれを必要とするとき

FileOutputStream o = new FileOutputStream(getFilesDir().getAbsolutePath() 
       + "/background.txt"); 
     Bitmap b = getBitmapFromURL("http://10.84.4.2:8083/images/General/background.png"); 
     b.compress(Bitmap.CompressFormat.PNG, 90, o); 

それからちょうど私が私の質問は、これです。この

public class DownloadImagesTask extends AsyncTask<String, String, Bitmap> 
{ 

    Bitmap bmp; 
    String name; 

    @Override 
    protected Bitmap doInBackground(String... urls) 
    { 
     name = urls[1]; 
     return download_Image(urls[0]); 
    } 

    @Override 
    protected void onPostExecute(Bitmap result) 
    { 
     try 
     { 

      FileOutputStream o = new FileOutputStream(getFilesDir() 
        .getAbsolutePath() + name); 
      result.compress(Bitmap.CompressFormat.PNG, 90, o); 
     } catch (Exception e) 
     { 
      e.printStackTrace(); 
     } 

    } 

    private Bitmap download_Image(String url) 
    { 
     return bmp = getBitmapFromURL(url); 

    } 

} 

のような非同期タスクを使用して一度にすべての画像をダウンロードする画像をリロードこれをする悪い方法?私はオンラインでのキャッシングに関する良いチュートリアルを見つけようとしましたが、実際に正しく説明したチュートリアルを見つけるのは難しいと感じました。私が使っている方法はかなりシンプルなようですが、推奨されているかどうかはわかりません。

誰かが私の方法で賛否両論をしていることを教えてもらえれば幸いです。私は別の方法に変更することを検討すべきですか?

おかげ

+0

からFedorVlasovのイメージローダを使用してみてくださいコードレビューのウェブサイト](http://codereview.stackexchange.com) – THelper

+0

これまでリンクを見たことがない、将来それを行います – AdamM

答えて

2

はあなたのコードに問題があるが、ちょうど他の人の意見をお聞きしたくない場合は、[上の質問を投稿するのが最善ですlazyadapter project

関連する問題