Package cn.com. mzba. Service;
Import java. Io. inputstream;
Import java. Lang. Ref. softreference;
Import java.net. url;
Import java. util. hashmap;
Import Android. Graphics. drawable. drawable;
Import Android. OS. Handler;
Import Android. OS. message;
Import Android. widget. imageview; Debt Recovery
/**
* Asynchronous loading and display of images
* @ Author kandanle
*
*/
Public class asyncimageloader {
/**
* Soft reference object: when responding to memory needs, the garbage collector determines whether to clear this object. Soft reference objects are most commonly used for memory-sensitive caching.
*/
Private hashmap <string, softreference <drawable> imagecache;
Public asyncimageloader (){
Imagecache = new hashmap <string, softreference <drawable> ();
}
Public drawable loaddrawable (final string imageurl, final imageview, final imagecallback ){
If (imagecache. containskey (imageurl )){
// Read everyone from the cache
Softreference <drawable> softreference = imagecache. Get (imageurl );
Drawable = softreference. Get ();
If (drawable! = NULL ){
Return drawable;
}
}
Final handler = new handler (){
@ Override
Public void handlemessage (Message MSG ){
Super. handlemessage (MSG );
Imagecallback. imageloaded (drawable) msg. OBJ, imageview, imageurl );
}
};
New thread (){
Public void run (){
Drawable = loadimagefromurl (imageurl );
Imagecache. Put (imageurl, new softreference <drawable> (drawable ));
Message message = handler. obtainmessage (0, drawable );
Handler. sendmessage (Message );
}
}. Start ();
Return NULL;
}
Public static drawable loadimagefromurl (string urlpath ){
URL;
Inputstream is = NULL;
Try {
Url = new URL (urlpath );
Is = (inputstream) URL. getcontent ();
} Catch (exception e ){
E. printstacktrace ();
}
Drawable = drawable. createfromstream (is, "src ");
Return drawable;
}
}
Package cn.com. mzba. Service;
Import Android. Graphics. drawable. drawable;
Import Android. widget. imageview;
Public interface imagecallback {
Public void imageloaded (drawable imagedrawable, imageview, string imageurl );
}
Drawable = asyncimageloader. loaddrawable (weiboinfo. getusericon (), viewusericon, new imagecallback (){
@ Override
Public void imageloaded (drawable imagedrawable, imageview, string imageurl ){
Imageview. setimagedrawable (imagedrawable );
}
});
If (drawable = NULL) {Wind Situation Java-JavaScript mogujie.com women's clothing
Viewusericon. setimageresource (R. drawable. Portrait );
} Else {
Viewusericon. setimagedrawable (drawable );
}