HttpURLCnnect的新闻图片错乱

来源:互联网 发布:mac 怎么在输入法切换 编辑:程序博客网 时间:2024/06/05 20:35
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);}