ImageLoader多张图片&listview多条目加载
2017-09-09 08:38
309 查看
//MainActivity
package com.bawei.mi; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.support.v7.app.AppCompatActivity; import android.util.Log; import android.widget.ListView; import com.bawei.mi.Adapter.lv_adapter; import com.bawei.mi.Bean.json_bean; import com.bawei.mi.Bean.lv_bean; import com.google.gson.Gson; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.URL; import java.util.ArrayList; import java.util.List; public class MainActivity extends AppCompatActivity { private ListView lv; private ArrayList<lv_bean> list = new ArrayList<lv_bean>(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //获取控件id lv = (ListView) findViewById(R.id.lv); initData();//解析json串 } Handler handler = new Handler() { @Override public void handleMessage(Message msg) { super.handleMessage(msg); Gson gson = new Gson(); String str = msg.obj.toString(); // json_bean json_bean = gson.fromJson((String) msg.obj, json_bean.class); json_bean json_bean = gson.fromJson(str, json_bean.class); com.bawei.mi.Bean.json_bean.ResultBean result = json_bean.getResult(); List<com.bawei.mi.Bean.json_bean.ResultBean.DataBean> data = result.getData();
//判断是否存在ABC图片 for (int i = 0; i < data.size(); i++) { String thumbnail_pic_s = data.get(i).getThumbnail_pic_s(); String thumbnail_pic_s02 = data.get(i).getThumbnail_pic_s02(); String thumbnail_pic_s03 = data.get(i).getThumbnail_pic_s03(); if (thumbnail_pic_s != null && thumbnail_pic_s02 == null && thumbnail_pic_s03 == null) { list.add(new lv_bean(data.get(i).getTitle(), data.get(i).getThumbnail_pic_s(), 0)); } else if (thumbnail_pic_s != null && thumbnail_pic_s02 != null && thumbnail_pic_s03 == null) { list.add(new lv_bean(data.get(i).getTitle(), data.get(i).getThumbnail_pic_s(), data.get(i).getThumbnail_pic_s02(), 1)); } else if (thumbnail_pic_s != null && thumbnail_pic_s02 != null && thumbnail_pic_s03 != null) { list.add(new lv_bean(data.get(i).getTitle(), data.get(i).getThumbnail_pic_s(), data.get(i).getThumbnail_pic_s02(), data.get(i).getThumbnail_pic_s03(), 2)); } } lv.setAdapter(new lv_adapter(MainActivity.this, list)); Log.e("shipeiqidexiamian", "qwrwjsda"); } }; //解析json串 private void initData() { new Thread() { @Override public void run() { super.run(); try { URL url = new URL("http://v.juhe.cn/toutiao/index?type=top&key=2f092bd9ce76c0257052d6d3c93c11b4"); HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection(); int responseCode = urlConnection.getResponseCode(); if (responseCode == 200) { InputStream inputStream = urlConnection.getInputStream(); BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream)); StringBuilder builder = new StringBuilder(); String stringTemp = ""; while ((stringTemp = reader.readLine()) != null) { builder.append(stringTemp); } Message message = new Message(); message.obj = builder.toString(); handler.sendMessage(message); } } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }.start(); } }
//adapter适配器
package com.bawei.mi.Adapter; import android.content.Context; import android.util.Log; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.ImageView; import android.widget.TextView; import com.bawei.mi.Bean.lv_bean; import com.bawei.mi.R; import com.nostra13.universalimageloader.core.ImageLoader; import java.util.ArrayList; /** * author:Created by WangZhiQiang on 2017/9/8. */ public class lv_adapter extends BaseAdapter { private Context con; private ArrayList<lv_bean> list; public lv_adapter(Context con, ArrayList<lv_bean> list) { this.con = con; this.list = list; } @Override public int getCount() { return list.size(); } @Override public Object getItem(int i) { return list.get(i); } @Override public long getItemId(int i) { return i; } @Override public int getItemViewType(int position) { return list.get(position).getType(); } @Override public int getViewTypeCount() { return 3; } class viewHoder { TextView title; ImageView img1; ImageView img2; ImageView img3; } @Override public View getView(int i, View view, ViewGroup viewGroup) { viewHoder hoder = new viewHoder(); lv_bean bean = list.get(i); int type = bean.getType(); if (type == 0) { if (view == null) { view = View.inflate(con, R.layout.layout_first, null); hoder.title = (TextView) view.findViewById(R.id.title); hoder.img1 = (ImageView) view.findViewById(R.id.img1); view.setTag(hoder); } else { hoder = (viewHoder) view.getTag(); } hoder.title.setText(bean.getTitle()); ImageLoader.getInstance().displayImage(bean.getPic1(), hoder.img1); Log.e("adapteradapter", "111111111"); } else if (type == 1) { if (view == null) { view = View.inflate(con, R.layout.layout_second, null); hoder.title = (TextView) view.findViewById(R.id.title); hoder.img1 = (ImageView) view.findViewById(R.id.img1); hoder.img2 = (ImageView) view.findViewById(R.id.img2); view.setTag(hoder); } else { hoder = (viewHoder) view.getTag(); } hoder.title.setText(bean.getTitle()); ImageLoader.getInstance().displayImage(bean.getPic1(), hoder.img1); ImageLoader.getInstance().displayImage(bean.getPic2(), hoder.img2); Log.e("adapteradapter", "222222222"); } else if (type == 2) { if (view == null) { view = View.inflate(con, R.layout.layout_thrid, null); hoder.title = (TextView) view.findViewById(R.id.title); hoder.img1 = (ImageView) view.findViewById(R.id.img1); hoder.img2 = (ImageView) view.findViewById(R.id.img2); hoder.img3 = (ImageView) view.findViewById(R.id.img3); view.setTag(hoder); } else { hoder = (viewHoder) view.getTag(); } hoder.title.setText(bean.getTitle()); ImageLoader.getInstance().displayImage(bean.getPic1(), hoder.img1); ImageLoader.getInstance().displayImage(bean.getPic2(), hoder.img2); ImageLoader.getInstance().displayImage(bean.getPic3(), hoder.img3); Log.e("adapteradapter", "33333333"); } return view; } }
相关文章推荐
- Android----ListView的使用--->加载网络图片
- SSS___listview多条目加载、使用okhttp请求网络数据,Glide加载图片
- 使用开源imageLoader优化listview加载大量本地图片的demo
- 使用Volley的ImageLoader优化listview加载图片
- 网络请求图片异步加载(ImageLoader)+多条目加载显示,案例:
- ListView优化使用imageLoader下载和缓存图片,图片异步加载,解决图片多了之后容易卡顿。
- Android ListView&异步加载的学习(二)——多线程加载图片
- 轮播图加载Imageloader图片,Xlistview上拉下拉
- listview中网络请求图片 用Imageloader加载闪烁问题
- ListView多条目加载和ImageLoader
- Android UI-开源框架ImageLoader完美使用+listview加载网络图片与下载
- Android ListView&异步加载的学习(三)——AsyncTask加载图片&运用Lru算法优化图片加载
- 使用recyclerview多条目加载代替listview okhttp请求网路 Glide加载图片
- 转:Android listview异步图片加载之优化篇——ImageLoader
- 使用开源imageLoader优化listview加载大量本地图片的demo
- 使用开源imageLoader优化listview加载大量本地图片的demo
- ImageLoader,GET,POST获取数据,多条目加载,XListView
- android studio使用imageLoader加载图片到listview上
- Android使用ImageLoader异步加载网络图片(二)结合listview
- Android使用Universal-ImageLoader在ListView中加载网络图片简单示例