1. layout XML file
Activity_main.xml
<relativelayout xmlns:android= "Http://schemas.android.com/apk/res/android"
Xmlns:tools= "Http://schemas.android.com/tools"
Android:layout_width= "Match_parent"
android:layout_height= "Match_parent"
android:paddingbottom= "@dimen/activity_vertical_margin"
android:paddingleft= "@dimen/activity_horizontal_margin"
android:paddingright= "@dimen/activity_horizontal_margin"
android:paddingtop= "@dimen/activity_vertical_margin"
Tools:context= ". Mainactivity ">
<button
Android:id= "@+id/btn"
android:onclick= "Download"
Android:layout_width= "Match_parent"
android:layout_height= "Wrap_content"
android:text= "Click Loop to load the mesh"/>
<imageview
Android:id= "@+id/iv"
android:layout_below= "@id/btn"
android:layout_height= "Match_parent"
Android:layout_width= "Match_parent"
/>
</RelativeLayout>
2. Optimization tool class Imagecach.javapackage com.example.day15_ex_loadimage; Import Java.util.HashMap; Import android.graphics.bitmap;/** * Image download Storage Optimizer class * @author Administrator * */public class Imagecach {//store URL and picture parsing stream Bitmap ObjectPublic static Hashmap<string,bitmap>map=new hashmap<string, bitmap> ();Get Bitmap ObjectPublic static Bitmap Getbitmap (String urlpath) { return ImageCach.map.get (URLPath); }//Store URL BitmapPublic Void put (String urlpath,bitmap bm) {ImageCach.map.put (URLPath, BM); }}3. Get the picture class Httputils.javapackage com.example.day15_ex_loadimage; Import Java.io.inputstream;import Java.net.httpurlconnection;import Java.net.malformedurlexception;import Java.net.URL; Import Android.graphics.bitmap;import Android.graphics.bitmapfactory;import Android.util.Log; public class Httputils {public static Bitmap Getbitmap (String urlpath) { Bitmap bm=null; Bm=imagecach.getbitmap (URLPath);//optimization prevents duplicate downloads if (bm==null) { try { url url=new url (urlpath);httpurlconnection conn= (httpurlconnection) url.openconnection ();InputStream In=conn.getinputstream ();Bm=bitmapfactory.decodestream (in); ImageCach.map.put (URLPath, BM); LOG.E ("img", "img"); in.close (); conn.disconnect (); } catch (Exception e) { //TODO auto-generated catch blocke.printstacktrace (); } } return BM; }}4. Implementing class Mainactivity.javapackage Com.example.day15_ex_loadimage; Import Android.os.bundle;import Android.annotation.suppresslint;import Android.app.activity;import Android.app.loadermanager;import Android.app.loadermanager.loadercallbacks;import Android.content.asynctaskloader;import Android.content.context;import Android.content.loader;import Android.graphics.bitmap;import Android.view.menu;import Android.view.view;import Android.widget.ImageView; @SuppressLint ("Newapi") public class Mainactivity extends Activity implements loadercallbacks<bitmap>{static int i=0;//control Picture URL path ImageView IV;@Overrideprotected void OnCreate (Bundle savedinstancestate) {super.oncreate (savedinstancestate);Setcontentview (r.layout.activity_main);Initializing the controliv= (ImageView) Findviewbyid (R.ID.IV); }public void Download (view view) {Loadermanager Loader=getloadermanager ();Loader.restartloader (0,null,this); }@OverridePublic loader<bitmap> oncreateloader (int id, Bundle args) {Myloader loader=new Myloader (this);//Create Loader objectreturn loader; } @OverridePublic void onloadfinished (loader<bitmap> arg0, Bitmap arg1) {Iv.setimagebitmap (arg1);//Set the picture to be displayed in ImageView }@OverridePublic void Onloaderreset (loader<bitmap> arg0) {//TODO auto-generated method stub }private static class Myloader extends asynctaskloader<bitmap>{Public Myloader (context context) {super (context);//TODO auto-generated constructor stub }@OverridePublic Bitmap Loadinbackground () { //can only load 4 pictures 1-4.jpg Bitmap bm=httputils.getbitmap ("http://www.ytmfdw.com/image/img" + (++i%4+1) + ". jpg");return BM; }@Overrideprotected void onstartloading () {//TODO auto-generated method stubsuper.onstartloading (); forceload (); } }}
Implement the Loadercallbacks interface to dynamically loop load the mesh and display it on the phone screen ...