2016-03-24 5 views
3

私はこの方法を使用していますが、すべてが完璧に機能しますが、イメージは常にサーバから取得され、キャッシュからロードされません!何が起こった ?イメージはキャッシュに保存されません

public static void makeImageRequest(String Unique_ID, final View parentView, final int id) { 

    String url = FILE_UPLOAD_FOLDER + Unique_ID + ".png"; 
    final int defaultImageResId = R.drawable.user; 
    // Retrieves an image specified by the URL, displays it in the UI. 
    ImageCacheManager.getInstance().getImage(url, new ImageListener() { 

     @Override 
     public void onErrorResponse(VolleyError error) { 
      ImageView imageView = (ImageView) parentView.findViewById(id); 
      imageView.setImageResource(defaultImageResId); 
     } 

     @Override 
     public void onResponse(ImageContainer response, boolean isImmediate) { 
      if (response.getBitmap() != null) { 
       ImageView imageView = (ImageView) parentView.findViewById(id); 
       imageView.setImageBitmap(response.getBitmap()); 
      } else if (defaultImageResId != 0) { 
       ImageView imageView = (ImageView) parentView.findViewById(id); 
       imageView.setImageResource(defaultImageResId); 
      } 

     } 
    }); 
} 

答えて

2

ImageCacheManagerの代わりにPicassoを使用してください。 Picassoは、Android用の強力な画像ダウンロードおよびキャッシングライブラリです。画像は、Androidアプリケーションに非常に必要なコンテキストと視覚的感覚を追加します。 Picassoでは、アプリケーション内で手間のかからない画像を読み込むことができます。

ここ
Picasso.with(context).load("http://i.imgur.com/DvpvklR.png").into(imageView); 

は、画像が正常にダウンロードされるか、それが失敗したかどうかを管理することができます

    Picasso.with(context) 
           .load("http://i.imgur.com/DvpvklR.png") 
           .into(imageView, new Callback() { 
            @Override 
            public void onSuccess() { 
             // your code 
            } 

            @Override 
            public void onError() { 
             // your code 
            } 
           }); 

あなただけのGradleにこの行を追加する必要があります

compile 'com.squareup.picasso:picasso:2.5.2' 

はそれが役に立てば幸い!

+0

ありがとうございます。最初に実行したキャッシュからイメージをロードします。イメージを更新するには? – shirin

関連する問題