package fragment.bwie.com.lianxi7; import android.os.AsyncTask; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.util.Log; import android.widget.ListView; import android.widget.Toast; import com.google.gson.Gson; import java.io.BufferedReader; import java.io.InputStream; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; import java.util.ArrayList; import java.util.List; import fragment.bwie.com.lianxi7.adapter.MyAdapter; import fragment.bwie.com.lianxi7.bean.DataBean; public class MainActivity extends AppCompatActivity { private ListView listView; private List<DataBean.ResultBean.ListBean> list = new ArrayList<>();; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); listView = (ListView) findViewById(R.id.list_item); AsyncTask<Void, Void, String> asyncTask = new AsyncTask<Void, Void, String>() { @Override protected String doInBackground(Void... voids) { String path = "http://v.juhe.cn/weixin/query?key=88f7bbc507e3ecacfaeab2b47dd8936f"; try { URL url = new URL(path); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setRequestMethod("GET"); conn.setConnectTimeout(5000); conn.setReadTimeout(5000); int responseCode = conn.getResponseCode(); if (responseCode == 200) { InputStream inputStream = conn.getInputStream(); String json = streamTostring(inputStream, "utf-8"); Log.i("json", json); return json; } } catch (Exception e) { e.printStackTrace(); } return null; } @Override protected void onPostExecute(String s) { super.onPostExecute(s); Gson gson = new Gson(); DataBean dataBean = gson.fromJson(s, DataBean.class); if (dataBean != null) { list = dataBean.getResult().getList(); list.addAll(dataBean.getResult().getList()); MyAdapter myAdapter = new MyAdapter(list, MainActivity.this); listView.setAdapter(myAdapter); } else { Toast.makeText(MainActivity.this, "什么都没有", Toast.LENGTH_SHORT).show(); } } }; asyncTask.execute(); } private String streamTostring(InputStream inputStream, String s) { try { InputStreamReader inputStreamReader = new InputStreamReader(inputStream,s); BufferedReader bufferedReader = new BufferedReader(inputStreamReader); StringBuilder builder = new StringBuilder(); String string = null; while ((string = bufferedReader.readLine()) != null) { builder.append(string); } bufferedReader.close(); return builder.toString(); } catch (Exception e) { e.printStackTrace(); } return null; } }
-------------------------------适配器
package fragment.bwie.com.lianxi7.adapter; import android.content.Context; import android.graphics.Bitmap; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.ImageView; import android.widget.TextView; import java.util.List; import fragment.bwie.com.lianxi7.R; import fragment.bwie.com.lianxi7.bean.DataBean; import fragment.bwie.com.lianxi7.util.ImageUtil; /** * Created by CZ on 2017/9/5. */ public class MyAdapter extends BaseAdapter { List<DataBean.ResultBean.ListBean> list; Context context; public MyAdapter(List<DataBean.ResultBean.ListBean> list, Context context) { this.list = list; this.context = context; } @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 View getView(final int i, View view, ViewGroup viewGroup) { ViewHolder holder; if (view == null){ view = View.inflate(context, R.layout.list_item,null); holder = new ViewHolder(); holder.firstImg = (ImageView) view.findViewById(R.id.image); holder.title = (TextView) view.findViewById(R.id.title); view.setTag(holder); }else { holder = (ViewHolder) view.getTag(); } holder.title.setText(list.get(i).getTitle()); new ImageUtil().getImage(holder.firstImg ,list.get(i).getFirstImg(), new ImageCallBack() { @Override public void setSuccessImage(ImageView imageView, Bitmap bitmap) { if (list.get(i).getFirstImg().equals(imageView.getTag())){ imageView.setImageBitmap(bitmap); } } }); return view; } public class ViewHolder { ImageView firstImg; TextView title; } }
----------------------------------异步加载图片
package fragment.bwie.com.lianxi7.util; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.os.AsyncTask; import android.os.Handler; import android.os.Message; import android.widget.ImageView; import java.io.InputStream; import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.URL; import java.net.URLConnection; import fragment.bwie.com.lianxi7.adapter.ImageCallBack; /** * Created by CZ on 2017/9/5. */ public class ImageUtil { ImageCallBack imageCallBack; ImageView imageview; private Handler handler = new Handler() { @Override public void handleMessage(Message msg) { if (msg.what == 0) { Bitmap bitmap = (Bitmap) msg.obj; imageview.setImageBitmap(bitmap); } } }; public void getImage(final ImageView firstImg, final String firstImg1, final ImageCallBack imageCallBack) { this.imageview = firstImg; this. imageCallBack = imageCallBack; AsyncTask<String, Void, Bitmap> asyncTask = new AsyncTask<String, Void, Bitmap>() { @Override protected Bitmap doInBackground(String... strings) { try { URL url = new URL(firstImg1); HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection(); urlConnection.setRequestMethod("GET"); urlConnection.setReadTimeout(5000); urlConnection.setConnectTimeout(5000); int responseCode = urlConnection.getResponseCode(); if (responseCode == 200) { InputStream inputStream = urlConnection.getInputStream(); Bitmap bitmap = BitmapFactory.decodeStream(inputStream); Message message = Message.obtain(); message.what = 0; message.obj = bitmap; handler.sendMessage(message); } } catch (Exception e) { e.printStackTrace(); } return null; } @Override protected void onPostExecute(Bitmap bitmap) { imageCallBack.setSuccessImage(firstImg,bitmap); } }; asyncTask.execute(firstImg1); } }
--------------------------------Bean类
package fragment.bwie.com.lianxi7.bean; import java.util.List; /** * Created by CZ on 2017/9/5. */ public class DataBean { /** * reason : 请求成功 * result : {"list":[{"id":"wechat_20170905060296","title":"再穷!家里也应该有一块奇石!","source":"晒石会","firstImg":"http://zxpic.gtimg.com/infonew/0/wechat_pics_-42556839.jpg/640","mark":"","url":"http://v.juhe.cn/weixin/redirect?wid=wechat_20170905060296"},{"id":"wechat_20170905060545","title":"童书 | 少女心,英雄梦","source":"三联生活周刊","firstImg":"http://zxpic.gtimg.com/infonew/0/wechat_pics_-39034717.jpg/640","mark":"","url":"http://v.juhe.cn/weixin/redirect?wid=wechat_20170905060545"},{"id":"wechat_20170905060534","title":"中元节 | 鬼月说钟馗","source":"三联生活周刊","firstImg":"http://zxpic.gtimg.com/infonew/0/wechat_pics_-42440243.jpg/640","mark":"","url":"http://v.juhe.cn/weixin/redirect?wid=wechat_20170905060534"},{"id":"wechat_20170905059273","title":"有问必答 |《国宝迷踪》第十一集问题解答","source":"央视百家","firstImg":"http://zxpic.gtimg.com/infonew/0/wechat_pics_-36785834.jpg/640","mark":"","url":"http://v.juhe.cn/weixin/redirect?wid=wechat_20170905059273"},{"id":"wechat_20170905059276","title":"为你读诗 |《李凭箜篌引》作者:李贺","source":"央视百家","firstImg":"http://zxpic.gtimg.com/infonew/0/wechat_pics_-42553669.jpg/640","mark":"","url":"http://v.juhe.cn/weixin/redirect?wid=wechat_20170905059276"},{"id":"wechat_20170905059311","title":"\u201c一元画\u201d1500万善款公布使用计划,剩下的1270万将这么用","source":"南方新闻网","firstImg":"http://zxpic.gtimg.com/infonew/0/wechat_pics_-13547970.static/640","mark":"","url":"http://v.juhe.cn/weixin/redirect?wid=wechat_20170905059311"},{"id":"wechat_20170905059614","title":"阴曹地府到底是谁建立的?十殿阎王只是干活的","source":"刀墓手札","firstImg":"http://zxpic.gtimg.com/infonew/0/wechat_pics_-37616212.static/640","mark":"","url":"http://v.juhe.cn/weixin/redirect?wid=wechat_20170905059614"},{"id":"wechat_20170905060120","title":"诗词中的中元节","source":"书画新风景","firstImg":"http://zxpic.gtimg.com/infonew/0/wechat_pics_-42556166.jpg/640","mark":"","url":"http://v.juhe.cn/weixin/redirect?wid=wechat_20170905060120"},{"id":"wechat_20170905060077","title":"水族箱里的金鱼游到画里啦!真漂亮!","source":"书画新风景","firstImg":"http://zxpic.gtimg.com/infonew/0/wechat_pics_-42555981.jpg/640","mark":"","url":"http://v.juhe.cn/weixin/redirect?wid=wechat_20170905060077"},{"id":"wechat_20170905060097","title":"这花鸟,美醉了朋友圈!","source":"书画新风景","firstImg":"http://zxpic.gtimg.com/infonew/0/wechat_pics_-42556028.jpg/640","mark":"","url":"http://v.juhe.cn/weixin/redirect?wid=wechat_20170905060097"},{"id":"wechat_20170905060258","title":"一位从事多年琥珀蜜蜡营业员离职后,爆出行内惊人内幕!","source":"晒石会","firstImg":"http://zxpic.gtimg.com/infonew/0/wechat_pics_-31947729.jpg/640","mark":"","url":"http://v.juhe.cn/weixin/redirect?wid=wechat_20170905060258"},{"id":"wechat_20170905060260","title":"史上最励志的捡漏:清乾隆南红玛瑙宝玺拍出380万!","source":"晒石会","firstImg":"http://zxpic.gtimg.com/infonew/0/wechat_pics_-42556730.jpg/640","mark":"","url":"http://v.juhe.cn/weixin/redirect?wid=wechat_20170905060260"},{"id":"wechat_20170905053693","title":"\u201c我太优秀了,我爸妈根本配不上我\u201d","source":"重庆青年报","firstImg":"http://zxpic.gtimg.com/infonew/0/wechat_pics_-42536224.jpg/640","mark":"","url":"http://v.juhe.cn/weixin/redirect?wid=wechat_20170905053693"},{"id":"wechat_20170905055357","title":"每天感恩三分钟(说的真好)","source":"梵心佛语录","firstImg":"http://zxpic.gtimg.com/infonew/0/wechat_pics_-37226951.jpg/640","mark":"","url":"http://v.juhe.cn/weixin/redirect?wid=wechat_20170905055357"},{"id":"wechat_20170905055297","title":"一位老人,玩微信两年来的感受!说得太精辟了~","source":"梵心佛语录","firstImg":"http://zxpic.gtimg.com/infonew/0/wechat_pics_-35685045.jpg/640","mark":"","url":"http://v.juhe.cn/weixin/redirect?wid=wechat_20170905055297"},{"id":"wechat_20170905055277","title":"人格如金!(说得太好了)","source":"梵心佛语录","firstImg":"http://zxpic.gtimg.com/infonew/0/wechat_pics_-35844920.jpg/640","mark":"","url":"http://v.juhe.cn/weixin/redirect?wid=wechat_20170905055277"},{"id":"wechat_20170905055249","title":"生命最后十分钟!(深度好文)","source":"梵心佛语录","firstImg":"http://zxpic.gtimg.com/infonew/0/wechat_pics_-34894563.jpg/640","mark":"","url":"http://v.juhe.cn/weixin/redirect?wid=wechat_20170905055249"},{"id":"wechat_20170905056755","title":"一位老总在公交上被女孩辱骂后!老总竟然当众......","source":"励志人生哲理","firstImg":"http://zxpic.gtimg.com/infonew/0/wechat_pics_-38049747.static/640","mark":"","url":"http://v.juhe.cn/weixin/redirect?wid=wechat_20170905056755"},{"id":"wechat_20170905056303","title":"看完此文,你就活明白了","source":"励志人生哲理","firstImg":"http://zxpic.gtimg.com/infonew/0/wechat_pics_-38049747.static/640","mark":"","url":"http://v.juhe.cn/weixin/redirect?wid=wechat_20170905056303"},{"id":"wechat_20170905056943","title":"失踪在日本的女教师:不要把世界让给你所鄙视的人","source":"桌子的生活观","firstImg":"http://zxpic.gtimg.com/infonew/0/wechat_pics_-18352546.static/640","mark":"","url":"http://v.juhe.cn/weixin/redirect?wid=wechat_20170905056943"}],"totalPage":7000,"ps":20,"pno":1} * error_code : 0 */ private String reason; private ResultBean result; private int error_code; public String getReason() { return reason; } public void setReason(String reason) { this.reason = reason; } public ResultBean getResult() { return result; } public void setResult(ResultBean result) { this.result = result; } public int getError_code() { return error_code; } public void setError_code(int error_code) { this.error_code = error_code; } public static class ResultBean { /** * list : [{"id":"wechat_20170905060296","title":"再穷!家里也应该有一块奇石!","source":"晒石会","firstImg":"http://zxpic.gtimg.com/infonew/0/wechat_pics_-42556839.jpg/640","mark":"","url":"http://v.juhe.cn/weixin/redirect?wid=wechat_20170905060296"},{"id":"wechat_20170905060545","title":"童书 | 少女心,英雄梦","source":"三联生活周刊","firstImg":"http://zxpic.gtimg.com/infonew/0/wechat_pics_-39034717.jpg/640","mark":"","url":"http://v.juhe.cn/weixin/redirect?wid=wechat_20170905060545"},{"id":"wechat_20170905060534","title":"中元节 | 鬼月说钟馗","source":"三联生活周刊","firstImg":"http://zxpic.gtimg.com/infonew/0/wechat_pics_-42440243.jpg/640","mark":"","url":"http://v.juhe.cn/weixin/redirect?wid=wechat_20170905060534"},{"id":"wechat_20170905059273","title":"有问必答 |《国宝迷踪》第十一集问题解答","source":"央视百家","firstImg":"http://zxpic.gtimg.com/infonew/0/wechat_pics_-36785834.jpg/640","mark":"","url":"http://v.juhe.cn/weixin/redirect?wid=wechat_20170905059273"},{"id":"wechat_20170905059276","title":"为你读诗 |《李凭箜篌引》作者:李贺","source":"央视百家","firstImg":"http://zxpic.gtimg.com/infonew/0/wechat_pics_-42553669.jpg/640","mark":"","url":"http://v.juhe.cn/weixin/redirect?wid=wechat_20170905059276"},{"id":"wechat_20170905059311","title":"\u201c一元画\u201d1500万善款公布使用计划,剩下的1270万将这么用","source":"南方新闻网","firstImg":"http://zxpic.gtimg.com/infonew/0/wechat_pics_-13547970.static/640","mark":"","url":"http://v.juhe.cn/weixin/redirect?wid=wechat_20170905059311"},{"id":"wechat_20170905059614","title":"阴曹地府到底是谁建立的?十殿阎王只是干活的","source":"刀墓手札","firstImg":"http://zxpic.gtimg.com/infonew/0/wechat_pics_-37616212.static/640","mark":"","url":"http://v.juhe.cn/weixin/redirect?wid=wechat_20170905059614"},{"id":"wechat_20170905060120","title":"诗词中的中元节","source":"书画新风景","firstImg":"http://zxpic.gtimg.com/infonew/0/wechat_pics_-42556166.jpg/640","mark":"","url":"http://v.juhe.cn/weixin/redirect?wid=wechat_20170905060120"},{"id":"wechat_20170905060077","title":"水族箱里的金鱼游到画里啦!真漂亮!","source":"书画新风景","firstImg":"http://zxpic.gtimg.com/infonew/0/wechat_pics_-42555981.jpg/640","mark":"","url":"http://v.juhe.cn/weixin/redirect?wid=wechat_20170905060077"},{"id":"wechat_20170905060097","title":"这花鸟,美醉了朋友圈!","source":"书画新风景","firstImg":"http://zxpic.gtimg.com/infonew/0/wechat_pics_-42556028.jpg/640","mark":"","url":"http://v.juhe.cn/weixin/redirect?wid=wechat_20170905060097"},{"id":"wechat_20170905060258","title":"一位从事多年琥珀蜜蜡营业员离职后,爆出行内惊人内幕!","source":"晒石会","firstImg":"http://zxpic.gtimg.com/infonew/0/wechat_pics_-31947729.jpg/640","mark":"","url":"http://v.juhe.cn/weixin/redirect?wid=wechat_20170905060258"},{"id":"wechat_20170905060260","title":"史上最励志的捡漏:清乾隆南红玛瑙宝玺拍出380万!","source":"晒石会","firstImg":"http://zxpic.gtimg.com/infonew/0/wechat_pics_-42556730.jpg/640","mark":"","url":"http://v.juhe.cn/weixin/redirect?wid=wechat_20170905060260"},{"id":"wechat_20170905053693","title":"\u201c我太优秀了,我爸妈根本配不上我\u201d","source":"重庆青年报","firstImg":"http://zxpic.gtimg.com/infonew/0/wechat_pics_-42536224.jpg/640","mark":"","url":"http://v.juhe.cn/weixin/redirect?wid=wechat_20170905053693"},{"id":"wechat_20170905055357","title":"每天感恩三分钟(说的真好)","source":"梵心佛语录","firstImg":"http://zxpic.gtimg.com/infonew/0/wechat_pics_-37226951.jpg/640","mark":"","url":"http://v.juhe.cn/weixin/redirect?wid=wechat_20170905055357"},{"id":"wechat_20170905055297","title":"一位老人,玩微信两年来的感受!说得太精辟了~","source":"梵心佛语录","firstImg":"http://zxpic.gtimg.com/infonew/0/wechat_pics_-35685045.jpg/640","mark":"","url":"http://v.juhe.cn/weixin/redirect?wid=wechat_20170905055297"},{"id":"wechat_20170905055277","title":"人格如金!(说得太好了)","source":"梵心佛语录","firstImg":"http://zxpic.gtimg.com/infonew/0/wechat_pics_-35844920.jpg/640","mark":"","url":"http://v.juhe.cn/weixin/redirect?wid=wechat_20170905055277"},{"id":"wechat_20170905055249","title":"生命最后十分钟!(深度好文)","source":"梵心佛语录","firstImg":"http://zxpic.gtimg.com/infonew/0/wechat_pics_-34894563.jpg/640","mark":"","url":"http://v.juhe.cn/weixin/redirect?wid=wechat_20170905055249"},{"id":"wechat_20170905056755","title":"一位老总在公交上被女孩辱骂后!老总竟然当众......","source":"励志人生哲理","firstImg":"http://zxpic.gtimg.com/infonew/0/wechat_pics_-38049747.static/640","mark":"","url":"http://v.juhe.cn/weixin/redirect?wid=wechat_20170905056755"},{"id":"wechat_20170905056303","title":"看完此文,你就活明白了","source":"励志人生哲理","firstImg":"http://zxpic.gtimg.com/infonew/0/wechat_pics_-38049747.static/640","mark":"","url":"http://v.juhe.cn/weixin/redirect?wid=wechat_20170905056303"},{"id":"wechat_20170905056943","title":"失踪在日本的女教师:不要把世界让给你所鄙视的人","source":"桌子的生活观","firstImg":"http://zxpic.gtimg.com/infonew/0/wechat_pics_-18352546.static/640","mark":"","url":"http://v.juhe.cn/weixin/redirect?wid=wechat_20170905056943"}] * totalPage : 7000 * ps : 20 * pno : 1 */ private int totalPage; private int ps; private int pno; private List<ListBean> list; public int getTotalPage() { return totalPage; } public void setTotalPage(int totalPage) { this.totalPage = totalPage; } public int getPs() { return ps; } public void setPs(int ps) { this.ps = ps; } public int getPno() { return pno; } public void setPno(int pno) { this.pno = pno; } public List<ListBean> getList() { return list; } public void setList(List<ListBean> list) { this.list = list; } public static class ListBean { /** * id : wechat_20170905060296 * title : 再穷!家里也应该有一块奇石! * source : 晒石会 * firstImg : http://zxpic.gtimg.com/infonew/0/wechat_pics_-42556839.jpg/640 * mark : * url : http://v.juhe.cn/weixin/redirect?wid=wechat_20170905060296 */ private String id; private String title; private String source; private String firstImg; private String mark; private String url; public String getId() { return id; } public void setId(String id) { this.id = id; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public String getSource() { return source; } public void setSource(String source) { this.source = source; } public String getFirstImg() { return firstImg; } public void setFirstImg(String firstImg) { this.firstImg = firstImg; } public String getMark() { return mark; } public void setMark(String mark) { this.mark = mark; } public String getUrl() { return url; } public void setUrl(String url) { this.url = url; } } } }
------------------------------------错乱的
package fragment.bwie.com.lianxi7.adapter; import android.graphics.Bitmap; import android.widget.ImageView; /** * Created by CZ on 2017/9/5. */ public interface ImageCallBack { public void setSuccessImage(ImageView imageView, Bitmap bitmap); }