2011-07-04 3 views
0

私はデフォルトレイジー・リストのコードのHashMapをシリアル化し、デバイス上のファイルに保存したい...アンドロイドセーブ・レイジー一覧HashMapを

実は私はイメージがローカルに格納したい,,,,

私のプロジェクトには、サーバーから使用するイメージがたくさん含まれています。ファイルにハッシュマップを格納する変更された遅延リストの方法やコードを提供してください。 Image-loaderクラスはそのオブジェクトを持っていなければなりません。

答えて

1

cacheDirという名前の変数を作成し、getBitmap()のメソッドを変更しますImageLoaderのクラスとこれ以下のクラス

private Bitmap getBitmap(String urlString) 
{ 
    String filename = String.valueOf(urlString.substring(urlString.lastIndexOf("/") + 1)); 
    File f = new File(cacheDir, filename); 
    try 
    { 
     if(!f.exists()) 
     { 
      Bitmap bitmap = null; 
      InputStream is = new URL(urlString).openStream(); 
      OutputStream os = new FileOutputStream(f); 
      Globals.CopyStream(is, os); 
      os.close(); 
      bitmap = decodeFile(f); 
      return bitmap; 
     } 
     else 
     {    
      Bitmap bitmap = decodeFile(f); 
      return bitmap; 
     } 

    } 
    catch (Exception ex) 
    { 
     ex.printStackTrace(); 
     BitmapDrawable mDrawable = (BitmapDrawable) context.getResources().getDrawable(R.drawable.placeholder); 
     return mDrawable.getBitmap(); 
    } 
} 
+0

Globals.CopyStream(is、os);このコードで解決することはできません..このコードは、アプリケーションが再起動したときに効果的でしょうか?すでに画像が表示されている場合は保存して使用します。 –

+0

hiiii ,,, thxコードを実装するのは間違いでした。それは今働いている...... –