MyApplication类:加载ImageLoader的实现
!!!!别忘了加权限和
在清单里加上MyApplication:

         android:name="com.example.listview_3item.MyApplication"        android:allowBackup="true"        android:icon="@drawable/ic_launcher"        android:label="@string/app_name"        android:theme="@style/AppTheme" >
package com.example.listview_3item;import com.nostra13.universalimageloader.core.DisplayImageOptions;import com.nostra13.universalimageloader.core.DisplayImageOptions.Builder;import com.nostra13.universalimageloader.core.ImageLoader;import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;import com.nostra13.universalimageloader.core.display.FadeInBitmapDisplayer;import android.app.Application;public class MyApplication extends Application{@Overridepublic void onCreate() {    // TODO Auto-generated method stub    DisplayImageOptions options = new DisplayImageOptions.Builder()    .showImageOnLoading(R.drawable.ic_launcher)    .displayer(new FadeInBitmapDisplayer(3000))    .build();    ImageLoaderConfiguration config = ImageLoaderConfiguration.createDefault(this);    ImageLoader.getInstance().init(config);    super.onCreate();

MainActivity 加载图片放到listview

package com.example.listview_3item;import java.io.InputStreamReader;import java.net.HttpURLConnection;import java.net.MalformedURLException;import java.net.URL;import java.util.ArrayList;import java.util.List;import com.example.listview_3item.bean.Max;import com.example.listview_3item.bean.news;import com.google.gson.Gson;import com.nostra13.universalimageloader.core.ImageLoader;import android.os.AsyncTask;import android.os.Bundle;import android.app.Activity;import android.view.Menu;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.ImageView;import android.widget.ListView;public class MainActivity extends Activity {List list;private MyAdapter myAdapter;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        ListView lv=(ListView) findViewById(R.id.lv);        getData();        myAdapter = new MyAdapter();        lv.setAdapter(myAdapter);    }    private void getData() {        // TODO Auto-generated method stub        new AsyncTask() {            @Override            protected String doInBackground(String... params) {                // TODO Auto-generated method stub                initData();                return null;            }            @Override            protected void onPostExecute(String result) {                // TODO Auto-generated method stub                myAdapter.notifyDataSetChanged();                super.onPostExecute(result);            }        }.execute();    }    protected void initData() {        // TODO Auto-generated method stub        try {            URL url = new URL("http://169.254.122.215:8080/day10/news.json");            HttpURLConnection conn=(HttpURLConnection) url.openConnection();            int code = conn.getResponseCode();            if(code==200){                Gson gson = new Gson();                Max m = gson.fromJson(new InputStreamReader(conn.getInputStream(),"GBK"), Max.class);                list=new ArrayList();                list=m.getData();            }        } catch (Exception e) {            // TODO Auto-generated catch block            e.printStackTrace();        }    }        class MyAdapter extends BaseAdapter{        public static final int TPONE=0;        public static final int TPTWO=1;        public static final int TPTHREE=2;                @Override        public int getCount() {            // TODO Auto-generated method stub            if(list!=null){                return list.size();            }            return 0;        }                //在使用多条目加载的时候    返回当前position对应的类型        //************必须满足的条件   getItemViewType的返回值  必须要小于getViewTypeCount的返回值        @Override        public int getItemViewType(int position) {            // TODO Auto-generated method stub            if(list.get(position).getType()==10001){                return TPONE;            }else if(list.get(position).getType()==10002){                return TPTWO;            }else {                return TPTHREE;            }                    }        //使用多条目加载时   一共有几种类型        //从写该方法后,listview控件会知道  当前的布局样式不止一种          //所以 当ListView发现convertview在复用时  类型不配不上时  会重写让convertView加载一遍布局        @Override        public int getViewTypeCount() {            // TODO Auto-generated method stub            return 3;        }        @Override        public Object getItem(int position) {            // TODO Auto-generated method stub            return null;        }        @Override        public long getItemId(int position) {            // TODO Auto-generated method stub            return 0;        }        @Override        public View getView(int position, View convertView, ViewGroup parent) {            // TODO Auto-generated method stub            ViewHolder0 holder0=null;            ViewHolder1 holder1=null;            ViewHolder2 holder2=null;            int type=getItemViewType(position);            if(convertView==null){                if(type==TPONE){                    convertView=View.inflate(MainActivity.this, R.layout.item0,null);                    holder0=new ViewHolder0();                    holder0.ivleft=(ImageView) convertView.findViewById(R.id.ivleft);                    convertView.setTag(holder0);                }else if(type==TPTWO){                    convertView=View.inflate(MainActivity.this, R.layout.item1,null);                    holder1=new ViewHolder1();                    holder1.ivm=(ImageView) convertView.findViewById(R.id.ivm);                    convertView.setTag(holder1);                }else{                    convertView=View.inflate(MainActivity.this, R.layout.item2,null);                    holder2=new ViewHolder2();                    holder2.ivright=(ImageView) convertView.findViewById(R.id.ivright);                    convertView.setTag(holder2);                }            }else{                if(type==TPONE){                    holder0=(ViewHolder0) convertView.getTag();                }else if(type==TPTWO){                    holder1=(ViewHolder1) convertView.getTag();                }else if(type==TPTHREE){                    holder2=(ViewHolder2) convertView.getTag();                }            }            if(type==TPONE){                ImageLoader.getInstance().displayImage(list.get(position).getPic_url(), holder0.ivleft);            }else if(type==TPTWO){                ImageLoader.getInstance().displayImage(list.get(position).getPic_url(), holder1.ivm);            }else if(type==TPTHREE){                ImageLoader.getInstance().displayImage(list.get(position).getPic_url(), holder2.ivright);            }            return convertView;        }            }    static class ViewHolder0{        ImageView ivleft;    }    static class ViewHolder1{        ImageView ivm;    }    static class ViewHolder2{        ImageView ivright;    }        }

布局 item0

<?xml version="1.0" encoding="utf-8"?>    

布局 item1

<?xml version="1.0" encoding="utf-8"?>    

布局 item2

<?xml version="1.0" encoding="utf-8"?>    

}
}

更多相关文章

  1. android 获取网络类型名称2G 3G 4G wifi
  2. Android(安卓)RadioButton
  3. Android(安卓)ExpandableListView同时显示多种不同类型字列表
  4. Android(安卓)Room联合AsyncListUtil实现RecyclerView分页加载OR
  5. android > WebView > 布局
  6. android 学习笔记(三)
  7. Android(安卓)WebView
  8. Android(安卓)异步加载图片
  9. Android月历控件(DatePicker)和时间控件(TimePicker)的使用

随机推荐

  1. Android版本号 API level一览表
  2. android之PopupWindow
  3. Android GLSurfaceView模糊效果
  4. Android 获取手机信号
  5. android ViewFlipper实现图片轮播
  6. Android条形统计图实现
  7. ubuntu下搭建cordova开发环境
  8. android获得圆角图片
  9. Multitasking the android way
  10. Android 列表对话框