2016-03-24 9 views
3

Ich habe diese Methode, alles funktioniert perfekt, aber Bilder immer vom Server und nicht aus dem Cache laden! Was ist passiert ?Bilder sind nicht im Cache gespeichert

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); 
      } 

     } 
    }); 
} 

Antwort

2

Verwenden Sie einfach Picasso statt ImageCacheManager. Picasso ist eine leistungsstarke Bild-Download- und Caching-Bibliothek für Android. Bilder fügen Android-Anwendungen den dringend benötigten Kontext und das visuelle Flair hinzu. Picasso ermöglicht problemloses Laden von Bildern in Ihre Anwendung - oft in einer Codezeile!

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

können hier auch verwalten, ob das Bild erfolgreich heruntergeladen wird, oder es fehlschlägt:

    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 
            } 
           }); 

Sie sollten nur diese Zeile in Ihrer gradle hinzufügen:

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

Hoffe, es hilft!

+0

Vielen Dank. aber es lädt immer Bild aus dem Cache sonst zuerst. Wie man Bilder erneuert? – shirin

Verwandte Themen