ho avuto questa risposta nel seguente link: Lazy load of images in ListView
package com.wilson.android.library;
/* Licensed to Apache Software Foundation (ASF) sotto uno o più contratti di licenza collaboratore. Vedere il file AVVISO distribuito con questo lavoro per ulteriori informazioni relative alla proprietà del copyright. L'ASF rilascia questo file sotto la licenza Apache, versione 2.0 (la " " Licenza "); non è possibile utilizzare questo file se non in conformità con con la Licenza. È possibile ottenere una copia della licenza al
http://www.apache.org/licenses/LICENSE-2.0
Se non richiesto dalla legge applicabile o concordato per iscritto, software distribuito sotto la licenza viene distribuito su un "COSÌ COM'È", SENZA GARANZIE O CONDIZIONI DI OGNI KIND, espressi o impliciti. Vedere la Licenza per le autorizzazioni e limitazioni specifiche della lingua sotto la Licenza.
*/
import java.io.IOException;
public class DrawableManager {
private final Map<String, Drawable> drawableMap;
public DrawableManager() {
drawableMap = new HashMap<String, Drawable>();
}
public Drawable fetchDrawable(String urlString) {
if (drawableMap.containsKey(urlString)) {
return drawableMap.get(urlString);
}
Log.d(this.getClass().getSimpleName(), "image url:" + urlString);
try {
InputStream is = fetch(urlString);
Drawable drawable = Drawable.createFromStream(is, "src");
if (drawable != null) {
drawableMap.put(urlString, drawable);
Log.d(this.getClass().getSimpleName(), "got a thumbnail drawable: " + drawable.getBounds() + ", "
+ drawable.getIntrinsicHeight() + "," + drawable.getIntrinsicWidth() + ", "
+ drawable.getMinimumHeight() + "," + drawable.getMinimumWidth());
} else {
Log.w(this.getClass().getSimpleName(), "could not get thumbnail");
}
return drawable;
} catch (MalformedURLException e) {
Log.e(this.getClass().getSimpleName(), "fetchDrawable failed", e);
return null;
} catch (IOException e) {
Log.e(this.getClass().getSimpleName(), "fetchDrawable failed", e);
return null;
}
}
public void fetchDrawableOnThread(final String urlString, final ImageView imageView) {
if (drawableMap.containsKey(urlString)) {
imageView.setImageDrawable(drawableMap.get(urlString));
}
final Handler handler = new Handler() {
@Override
public void handleMessage(Message message) {
imageView.setImageDrawable((Drawable) message.obj);
}
};
Thread thread = new Thread() {
@Override
public void run() {
//TODO : set imageView to a "pending" image
Drawable drawable = fetchDrawable(urlString);
Message message = handler.obtainMessage(1, drawable);
handler.sendMessage(message);
}
};
thread.start();
}
private InputStream fetch(String urlString) throws MalformedURLException, IOException {
DefaultHttpClient httpClient = new DefaultHttpClient();
HttpGet request = new HttpGet(urlString);
HttpResponse response = httpClient.execute(request);
return response.getEntity().getContent();
}
}
Speranza che aiuta.
fonte
2012-09-26 06:24:26
qualcosa di simile: http://stackoverflow.com/questions/2912054/lazy-load-images-on-listview-in-androidbeginner-level – ahsan