多条目加载

来源:互联网 发布:js document 创建标签 编辑:程序博客网 时间:2024/06/06 03:42

==========================activity============================================

package news1510a.bawei.com.a08_imageloader_demo.activity;

import android.os.AsyncTask;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.widget.ListView;

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.List;

import news1510a.bawei.com.a08_imageloader_demo.adapter.MyAdapter;
import news1510a.bawei.com.a08_imageloader_demo.R;
import news1510a.bawei.com.a08_imageloader_demo.bean.DataDataBean;

/**
 * 这里是imageLoader的使用
 * <p>
 * 1.参考博客:http://blog.csdn.net/u011275280/article/details/51577557
 * 2.对于当前应用添加iamgeLoader的依赖.....nostra
 * 3.对imageLoader进行配置,,,他的配置需要全局配置一次就可以
 * 创建一个类继承Application,并且在清单文件中进行配置,,,在当前baseApplication的oncreate方法里面进行配置就可以
 */
public class MainActivity extends AppCompatActivity {

    private ListView listView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        listView = (ListView) findViewById(R.id.list_view);

        getDataFromNet();
    }

    private void getDataFromNet() {

        AsyncTask<Void, Void, String> asyncTask = new AsyncTask<Void, Void, String>() {
            @Override
            protected String doInBackground(Void... voids) {

                try {
                    URL url = new URL("http://v.juhe.cn/weixin/query?key=88f7bbc507e3ecacfaeab2b47dd8936f&ps=30");

                    HttpURLConnection connection = (HttpURLConnection) url.openConnection();
                    //设置
                    connection.setRequestMethod("GET");
                    connection.setReadTimeout(5000);
                    connection.setConnectTimeout(5000);

                    //获取
                    int responseCode = connection.getResponseCode();
                    if (responseCode == 200){
                        InputStream inputStream = connection.getInputStream();

                        String json = streamToString(inputStream,"utf-8");

                        return json;
                    }

                } catch (Exception e) {
                    e.printStackTrace();
                }

                return null;
            }

            @Override
            protected void onPostExecute(String s) {
                Gson gson = new Gson();

                DataDataBean dataDataBean = gson.fromJson(s, DataDataBean.class);

                List<DataDataBean.ResultBean.ListBean> list = dataDataBean.getResult().getList();

                MyAdapter myAdapter = new MyAdapter(MainActivity.this, list);

                listView.setAdapter(myAdapter);
            }
        };

        asyncTask.execute();

    }

    private String streamToString(InputStream inputStream,String charset) {
        try {
            InputStreamReader inputStreamReader = new InputStreamReader(inputStream,charset);

            BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
            String s = null;
            StringBuilder builder = new StringBuilder();
            while ((s = bufferedReader.readLine()) != null){
                builder.append(s);
            }

            bufferedReader.close();
            return builder.toString();

        } catch (Exception e) {
            e.printStackTrace();
        }

        return  null;
    }
}

==================================MyAdapter============================================================

package news1510a.bawei.com.a08_imageloader_demo.adapter;

import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;

import com.nostra13.universalimageloader.core.ImageLoader;

import java.util.List;

import news1510a.bawei.com.a08_imageloader_demo.R;
import news1510a.bawei.com.a08_imageloader_demo.bean.DataDataBean;
import news1510a.bawei.com.a08_imageloader_demo.util.ImageLoaderUtil;

/**
 * @author Dash
 * @date 2017/10/10
 * @description:
 *
 * listView的多条目加载
 *
 * 1.重写方法getViewTypeCount....返回条目展示的数量
 * 2.重写方法getItemViewType....返回当前条目的类型
 * 3.在getView方法里面,,,根据当前条目的类型进行优化
 */
public class MyAdapter extends BaseAdapter {
    Context context;
    List<DataDataBean.ResultBean.ListBean> list;

    private int TYTLE_ONLY = 0;//只有文字的形式
    private int IMAGE_LEFT = 1;//表示图片在左边,文字在右边
    private int IMAGE_RIGHT = 2;//* 2表示图片在右边,文字在左边
    private int IMAGE_BOTTOM = 3;// * 3表示文字在上边,图片在下面

    public MyAdapter(Context context, List<DataDataBean.ResultBean.ListBean> list) {
        this.context = context;
        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;
    }

    /**
     * 1.适配器中重写这个getViewTypeCount方法...得到视图类型的数量,,,也就是listView要展示多少种不同的视图
     * @return
     */
    @Override
    public int getViewTypeCount() {
        return 4;
    }

    /**
     * 2.重写适配器中getItemViewType方法...返回当前条目视图的类型,,,返回值是int值
     *
     * int返回值是有限制的,,,,例如getViewTypeCount返回的是4,,,那么他的取值只能是0,1,2,3
     *
     * 0表示第一种,,只有一个表题的条目样式
     * 1表示图片在左边,文字在右边
     * 2表示图片在右边,文字在左边
     * 3表示文字在上边,图片在下面
     *
     * 实际开发中显示哪种条目的类型是根据接口数据中具体的那个字段值来决定的
     *
     * 现在,,例如...position%4
     * @param position
     * @return
     */
    @Override
    public int getItemViewType(int position) {

        if (position%4 == 0){
            return TYTLE_ONLY;
        }else if (position %4==1){
            return IMAGE_LEFT;
        }else if (position %4==2){
            return IMAGE_RIGHT;
        }

        return IMAGE_BOTTOM;
    }

    @Override
    public View getView(int i, View view, ViewGroup viewGroup) {

        //在做优化之前先判断一下当前条目展示的是哪一种类型,,,然后再进行关联布局进行优化
        if (getItemViewType(i) == TYTLE_ONLY){

            TitleHolder holder;
            if (view == null){
                view = View.inflate(context, R.layout.item_title_layout,null);
                holder = new TitleHolder();

                holder.textView = view.findViewById(R.id.text_title);

                view.setTag(holder);
            }else {
                holder = (TitleHolder) view.getTag();
            }

            //赋值
            holder.textView.setText(list.get(i).getTitle());

        }else if (getItemViewType(i) == IMAGE_LEFT){
            ImageLeftHolder holder;
            if (view == null){
                view = View.inflate(context, R.layout.item_layout,null);
                holder = new ImageLeftHolder();

                holder.textView = view.findViewById(R.id.text_title);
                holder.imageView = view.findViewById(R.id.image_view);

                view.setTag(holder);
            }else {
                holder = (ImageLeftHolder) view.getTag();
            }

            //赋值
            holder.textView.setText(list.get(i).getTitle());

            //显示图片
            ImageLoader.getInstance().displayImage(list.get(i).getFirstImg(),holder.imageView, ImageLoaderUtil.getDefaultOption());

        }else if (getItemViewType(i) == IMAGE_RIGHT){

            ImageRightHolder holder;
            if (view == null){
                view = View.inflate(context, R.layout.item_right_layout,null);
                holder = new ImageRightHolder();

                holder.textView = view.findViewById(R.id.text_title);
                holder.imageView = view.findViewById(R.id.image_view);

                view.setTag(holder);
            }else {
                holder = (ImageRightHolder) view.getTag();
            }

            //赋值
            holder.textView.setText(list.get(i).getTitle());

            //显示图片
            ImageLoader.getInstance().displayImage(list.get(i).getFirstImg(),holder.imageView, ImageLoaderUtil.getDefaultOption());


        }else if (getItemViewType(i) == IMAGE_BOTTOM){
            ImageBottomHolder holder;
            if (view == null){
                view = View.inflate(context, R.layout.item_bottom_layout,null);
                holder = new ImageBottomHolder();

                holder.textView = view.findViewById(R.id.text_title);
                holder.imageView = view.findViewById(R.id.image_view);

                view.setTag(holder);
            }else {
                holder = (ImageBottomHolder) view.getTag();
            }

            //赋值
            holder.textView.setText(list.get(i).getTitle());

            //显示图片
            ImageLoader.getInstance().displayImage(list.get(i).getFirstImg(),holder.imageView, ImageLoaderUtil.getDefaultOption());


        }

        return view;
    }

    private class TitleHolder{
        TextView textView;
    }
    private class ImageLeftHolder{
        TextView textView;
        ImageView imageView;
    }
    private class ImageRightHolder{
        TextView textView;
        ImageView imageView;
    }
    private class ImageBottomHolder{
        TextView textView;
        ImageView imageView;
    }

}

=================================BaseApplication=========================================================

package news1510a.bawei.com.a08_imageloader_demo.application;

import android.app.Application;

import news1510a.bawei.com.a08_imageloader_demo.util.ImageLoaderUtil;

/**
 * @author Dash
 * @date 2017/10/10
 * @description:
 */
public class BaseApplication extends Application {
    @Override
    public void onCreate() {
        super.onCreate();

        //在应用创建的时候,,,对imageLoader进行全局配置
        ImageLoaderUtil.init(this);//写一个工具类对imageLoader进行初始化...应用也可以作为上下文
    }
}

====================================DataDataBean======================================================================

package news1510a.bawei.com.a08_imageloader_demo.bean;

import java.util.List;

/**
 * @author Dash
 * @date 2017/10/10
 * @description:
 */
public class DataDataBean {

    /**
     * reason : 请求成功
     * result : {"list":[{"id":"wechat_20171010017746","title":"工匠祖师爷鲁班的十大发明,向工匠精神致敬!","source":"航空制造网","firstImg":"http://zxpic.gtimg.com/infonew/0/wechat_pics_-46247538.jpg/640","mark":"","url":"http://v.juhe.cn/weixin/redirect?wid=wechat_20171010017746"},{"id":"wechat_20171010015552","title":"胡愈之:一生中少有的甜睡","source":"端木赐香","firstImg":"","mark":"","url":"http://v.juhe.cn/weixin/redirect?wid=wechat_20171010015552"},{"id":"wechat_20171010016386","title":"一花 一季 一生(很短,很美!)","source":"品读时刻","firstImg":"http://zxpic.gtimg.com/infonew/0/wechat_pics_-52564075.jpg/640","mark":"","url":"http://v.juhe.cn/weixin/redirect?wid=wechat_20171010016386"},{"id":"wechat_20171010016397","title":"汪曾祺:在慌乱的世界里,不慌不忙地生活","source":"海量文萃","firstImg":"http://zxpic.gtimg.com/infonew/0/wechat_pics_-52564157.jpg/640","mark":"","url":"http://v.juhe.cn/weixin/redirect?wid=wechat_20171010016397"},{"id":"wechat_20171010014009","title":"拿去发朋友圈吧!肯定能得到很多赞!","source":"美小搭","firstImg":"http://zxpic.gtimg.com/infonew/0/wechat_pics_-52561515.jpg/640","mark":"","url":"http://v.juhe.cn/weixin/redirect?wid=wechat_20171010014009"},{"id":"wechat_20171010013935","title":"二十出头的你必须要知道的道理:圈子虽小,干净就好。","source":"壹课","firstImg":"http://zxpic.gtimg.com/infonew/0/wechat_pics_-13578048.static/640","mark":"","url":"http://v.juhe.cn/weixin/redirect?wid=wechat_20171010013935"},{"id":"wechat_20171010014342","title":"心累、心烦就听听这首《我佛慈悲》,好听极了!","source":"动图贴贴","firstImg":"http://zxpic.gtimg.com/infonew/0/wechat_pics_-42107029.static/640","mark":"","url":"http://v.juhe.cn/weixin/redirect?wid=wechat_20171010014342"},{"id":"wechat_20171010014349","title":"看轻浮华,让生命安静素简","source":"每日一禅","firstImg":"http://zxpic.gtimg.com/infonew/0/wechat_pics_-52561929.jpg/640","mark":"","url":"http://v.juhe.cn/weixin/redirect?wid=wechat_20171010014349"},{"id":"wechat_20171010014442","title":"这辈子,守三个情人到老!","source":"玲珑音乐相册","firstImg":"http://zxpic.gtimg.com/infonew/0/wechat_pics_-48565842.jpg/640","mark":"","url":"http://v.juhe.cn/weixin/redirect?wid=wechat_20171010014442"},{"id":"wechat_20171010016382","title":"心宽似海,清风自来","source":"品读时刻","firstImg":"http://zxpic.gtimg.com/infonew/0/wechat_pics_-52564076.jpg/640","mark":"","url":"http://v.juhe.cn/weixin/redirect?wid=wechat_20171010016382"},{"id":"wechat_20171010016384","title":"老祖宗留下的10句老话,说尽人生百态","source":"品读时刻","firstImg":"http://zxpic.gtimg.com/infonew/0/wechat_pics_-44409228.jpg/640","mark":"","url":"http://v.juhe.cn/weixin/redirect?wid=wechat_20171010016384"},{"id":"wechat_20171010016387","title":"追了很久的《那年花开月正圆》终于大结局了,这部剧让我学会很重要的三件事","source":"汤小小","firstImg":"http://zxpic.gtimg.com/infonew/0/wechat_pics_-47932708.static/640","mark":"","url":"http://v.juhe.cn/weixin/redirect?wid=wechat_20171010016387"},{"id":"wechat_20171009028569","title":"育儿|鱼肝油不是随随便便就能补的,已被新妈妈们转疯","source":"快乐孕育孕妇课堂","firstImg":"http://zxpic.gtimg.com/infonew/0/wechat_pics_-52162320.jpg/640","mark":"","url":"http://v.juhe.cn/weixin/redirect?wid=wechat_20171009028569"},{"id":"wechat_20171009085709","title":"曾美过高圆圆却嫁错了人!再婚的她竟被小8岁鲜肉宠成这样?","source":"海报网","firstImg":"http://zxpic.gtimg.com/infonew/0/wechat_pics_-52407475.jpg/640","mark":"","url":"http://v.juhe.cn/weixin/redirect?wid=wechat_20171009085709"},{"id":"wechat_20171009106360","title":"预测鹿晗恋爱后人气大跌!薛之谦红不过两年!娱乐圈第一神婆应采儿为何如此神叨?","source":"达人钧钧工作室","firstImg":"http://zxpic.gtimg.com/infonew/0/wechat_pics_-52511683.jpg/640","mark":"","url":"http://v.juhe.cn/weixin/redirect?wid=wechat_20171009106360"},{"id":"wechat_20171010012175","title":"刘文典喻释做文章","source":"朝花时文","firstImg":"http://zxpic.gtimg.com/infonew/0/wechat_pics_-52556703.jpg/640","mark":"","url":"http://v.juhe.cn/weixin/redirect?wid=wechat_20171010012175"},{"id":"wechat_20171010009209","title":"他是与金庸齐名的武侠大师 酒色财气五毒俱全 死后与48瓶白兰地合葬","source":"互动百科","firstImg":"http://zxpic.gtimg.com/infonew/0/wechat_pics_-52551676.jpg/640","mark":"","url":"http://v.juhe.cn/weixin/redirect?wid=wechat_20171010009209"},{"id":"wechat_20171010009418","title":"奶奶一个鸡蛋毒死4岁女童,家长速看!","source":"国人真相","firstImg":"","mark":"","url":"http://v.juhe.cn/weixin/redirect?wid=wechat_20171010009418"},{"id":"wechat_20171010009392","title":"厨师向老板借钱,老板不答应!最后后悔死了","source":"国人真相","firstImg":"","mark":"","url":"http://v.juhe.cn/weixin/redirect?wid=wechat_20171010009392"},{"id":"wechat_20171010009397","title":"女子染发后头皮发痒,到医院一检查,吓惨了!","source":"国人真相","firstImg":"","mark":"","url":"http://v.juhe.cn/weixin/redirect?wid=wechat_20171010009397"},{"id":"wechat_20171010009689","title":"今日直播丨三个女人N台戏,谁赢谁输你来定!","source":"博物馆丨看展览","firstImg":"http://zxpic.gtimg.com/infonew/0/wechat_pics_-49402941.jpg/640","mark":"","url":"http://v.juhe.cn/weixin/redirect?wid=wechat_20171010009689"},{"id":"wechat_20171010010150","title":"那些见多识广的孩子,都是看什么书长大的?丨明日团","source":"成长树","firstImg":"http://zxpic.gtimg.com/infonew/0/wechat_pics_-52553543.jpg/640","mark":"","url":"http://v.juhe.cn/weixin/redirect?wid=wechat_20171010010150"},{"id":"wechat_20171010010142","title":"中国的绘本有多美?最适合孩子读的《西游记》,全世界的老外都被征服了! 丨明日团","source":"成长树","firstImg":"http://zxpic.gtimg.com/infonew/0/wechat_pics_-52553518.jpg/640","mark":"","url":"http://v.juhe.cn/weixin/redirect?wid=wechat_20171010010142"},{"id":"wechat_20171010010124","title":"别错过孩子的绘画敏感期,法国艺术启蒙教材来了!丨明日团","source":"成长树","firstImg":"http://zxpic.gtimg.com/infonew/0/wechat_pics_-52553442.jpg/640","mark":"","url":"http://v.juhe.cn/weixin/redirect?wid=wechat_20171010010124"},{"id":"wechat_20171010010168","title":"ONE实验室解散,\u201c特稿梦之队\u201d集体离职","source":"刺猬公社","firstImg":"http://zxpic.gtimg.com/infonew/0/wechat_pics_-51347735.jpg/640","mark":"","url":"http://v.juhe.cn/weixin/redirect?wid=wechat_20171010010168"},{"id":"wechat_20171010011111","title":"10/10 丁酉八月二十一日丨【天皇至道太清玉册】朝修吉辰章","source":"腾讯道学","firstImg":"http://zxpic.gtimg.com/infonew/0/wechat_pics_-43332142.static/640","mark":"","url":"http://v.juhe.cn/weixin/redirect?wid=wechat_20171010011111"},{"id":"wechat_20171010011071","title":"?囿于\u201c立足境\u201d的清香茉莉花 \u2014\u2014从《旷性怡情》分析贾迎春的人物形象","source":"红楼梦学刊","firstImg":"http://zxpic.gtimg.com/infonew/0/wechat_pics_-34106286.jpg/640","mark":"","url":"http://v.juhe.cn/weixin/redirect?wid=wechat_20171010011071"},{"id":"wechat_20171010011469","title":"高莽:\u201c翻译是要流汗的\u201d丨纪念","source":"文艺报1949","firstImg":"http://zxpic.gtimg.com/infonew/0/wechat_pics_-52556042.jpg/640","mark":"","url":"http://v.juhe.cn/weixin/redirect?wid=wechat_20171010011469"},{"id":"wechat_20171010011387","title":"今日主播:海飞(编剧、作家)","source":"文艺报1949","firstImg":"http://zxpic.gtimg.com/infonew/0/wechat_pics_-9440725.jpg/640","mark":"","url":"http://v.juhe.cn/weixin/redirect?wid=wechat_20171010011387"},{"id":"wechat_20171010009179","title":"真正的成功,就是家庭幸福","source":"如何提升自信","firstImg":"http://zxpic.gtimg.com/infonew/0/wechat_pics_-52551649.jpg/640","mark":"","url":"http://v.juhe.cn/weixin/redirect?wid=wechat_20171010009179"}],"totalPage":5285,"ps":30,"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_20171010017746","title":"工匠祖师爷鲁班的十大发明,向工匠精神致敬!","source":"航空制造网","firstImg":"http://zxpic.gtimg.com/infonew/0/wechat_pics_-46247538.jpg/640","mark":"","url":"http://v.juhe.cn/weixin/redirect?wid=wechat_20171010017746"},{"id":"wechat_20171010015552","title":"胡愈之:一生中少有的甜睡","source":"端木赐香","firstImg":"","mark":"","url":"http://v.juhe.cn/weixin/redirect?wid=wechat_20171010015552"},{"id":"wechat_20171010016386","title":"一花 一季 一生(很短,很美!)","source":"品读时刻","firstImg":"http://zxpic.gtimg.com/infonew/0/wechat_pics_-52564075.jpg/640","mark":"","url":"http://v.juhe.cn/weixin/redirect?wid=wechat_20171010016386"},{"id":"wechat_20171010016397","title":"汪曾祺:在慌乱的世界里,不慌不忙地生活","source":"海量文萃","firstImg":"http://zxpic.gtimg.com/infonew/0/wechat_pics_-52564157.jpg/640","mark":"","url":"http://v.juhe.cn/weixin/redirect?wid=wechat_20171010016397"},{"id":"wechat_20171010014009","title":"拿去发朋友圈吧!肯定能得到很多赞!","source":"美小搭","firstImg":"http://zxpic.gtimg.com/infonew/0/wechat_pics_-52561515.jpg/640","mark":"","url":"http://v.juhe.cn/weixin/redirect?wid=wechat_20171010014009"},{"id":"wechat_20171010013935","title":"二十出头的你必须要知道的道理:圈子虽小,干净就好。","source":"壹课","firstImg":"http://zxpic.gtimg.com/infonew/0/wechat_pics_-13578048.static/640","mark":"","url":"http://v.juhe.cn/weixin/redirect?wid=wechat_20171010013935"},{"id":"wechat_20171010014342","title":"心累、心烦就听听这首《我佛慈悲》,好听极了!","source":"动图贴贴","firstImg":"http://zxpic.gtimg.com/infonew/0/wechat_pics_-42107029.static/640","mark":"","url":"http://v.juhe.cn/weixin/redirect?wid=wechat_20171010014342"},{"id":"wechat_20171010014349","title":"看轻浮华,让生命安静素简","source":"每日一禅","firstImg":"http://zxpic.gtimg.com/infonew/0/wechat_pics_-52561929.jpg/640","mark":"","url":"http://v.juhe.cn/weixin/redirect?wid=wechat_20171010014349"},{"id":"wechat_20171010014442","title":"这辈子,守三个情人到老!","source":"玲珑音乐相册","firstImg":"http://zxpic.gtimg.com/infonew/0/wechat_pics_-48565842.jpg/640","mark":"","url":"http://v.juhe.cn/weixin/redirect?wid=wechat_20171010014442"},{"id":"wechat_20171010016382","title":"心宽似海,清风自来","source":"品读时刻","firstImg":"http://zxpic.gtimg.com/infonew/0/wechat_pics_-52564076.jpg/640","mark":"","url":"http://v.juhe.cn/weixin/redirect?wid=wechat_20171010016382"},{"id":"wechat_20171010016384","title":"老祖宗留下的10句老话,说尽人生百态","source":"品读时刻","firstImg":"http://zxpic.gtimg.com/infonew/0/wechat_pics_-44409228.jpg/640","mark":"","url":"http://v.juhe.cn/weixin/redirect?wid=wechat_20171010016384"},{"id":"wechat_20171010016387","title":"追了很久的《那年花开月正圆》终于大结局了,这部剧让我学会很重要的三件事","source":"汤小小","firstImg":"http://zxpic.gtimg.com/infonew/0/wechat_pics_-47932708.static/640","mark":"","url":"http://v.juhe.cn/weixin/redirect?wid=wechat_20171010016387"},{"id":"wechat_20171009028569","title":"育儿|鱼肝油不是随随便便就能补的,已被新妈妈们转疯","source":"快乐孕育孕妇课堂","firstImg":"http://zxpic.gtimg.com/infonew/0/wechat_pics_-52162320.jpg/640","mark":"","url":"http://v.juhe.cn/weixin/redirect?wid=wechat_20171009028569"},{"id":"wechat_20171009085709","title":"曾美过高圆圆却嫁错了人!再婚的她竟被小8岁鲜肉宠成这样?","source":"海报网","firstImg":"http://zxpic.gtimg.com/infonew/0/wechat_pics_-52407475.jpg/640","mark":"","url":"http://v.juhe.cn/weixin/redirect?wid=wechat_20171009085709"},{"id":"wechat_20171009106360","title":"预测鹿晗恋爱后人气大跌!薛之谦红不过两年!娱乐圈第一神婆应采儿为何如此神叨?","source":"达人钧钧工作室","firstImg":"http://zxpic.gtimg.com/infonew/0/wechat_pics_-52511683.jpg/640","mark":"","url":"http://v.juhe.cn/weixin/redirect?wid=wechat_20171009106360"},{"id":"wechat_20171010012175","title":"刘文典喻释做文章","source":"朝花时文","firstImg":"http://zxpic.gtimg.com/infonew/0/wechat_pics_-52556703.jpg/640","mark":"","url":"http://v.juhe.cn/weixin/redirect?wid=wechat_20171010012175"},{"id":"wechat_20171010009209","title":"他是与金庸齐名的武侠大师 酒色财气五毒俱全 死后与48瓶白兰地合葬","source":"互动百科","firstImg":"http://zxpic.gtimg.com/infonew/0/wechat_pics_-52551676.jpg/640","mark":"","url":"http://v.juhe.cn/weixin/redirect?wid=wechat_20171010009209"},{"id":"wechat_20171010009418","title":"奶奶一个鸡蛋毒死4岁女童,家长速看!","source":"国人真相","firstImg":"","mark":"","url":"http://v.juhe.cn/weixin/redirect?wid=wechat_20171010009418"},{"id":"wechat_20171010009392","title":"厨师向老板借钱,老板不答应!最后后悔死了","source":"国人真相","firstImg":"","mark":"","url":"http://v.juhe.cn/weixin/redirect?wid=wechat_20171010009392"},{"id":"wechat_20171010009397","title":"女子染发后头皮发痒,到医院一检查,吓惨了!","source":"国人真相","firstImg":"","mark":"","url":"http://v.juhe.cn/weixin/redirect?wid=wechat_20171010009397"},{"id":"wechat_20171010009689","title":"今日直播丨三个女人N台戏,谁赢谁输你来定!","source":"博物馆丨看展览","firstImg":"http://zxpic.gtimg.com/infonew/0/wechat_pics_-49402941.jpg/640","mark":"","url":"http://v.juhe.cn/weixin/redirect?wid=wechat_20171010009689"},{"id":"wechat_20171010010150","title":"那些见多识广的孩子,都是看什么书长大的?丨明日团","source":"成长树","firstImg":"http://zxpic.gtimg.com/infonew/0/wechat_pics_-52553543.jpg/640","mark":"","url":"http://v.juhe.cn/weixin/redirect?wid=wechat_20171010010150"},{"id":"wechat_20171010010142","title":"中国的绘本有多美?最适合孩子读的《西游记》,全世界的老外都被征服了! 丨明日团","source":"成长树","firstImg":"http://zxpic.gtimg.com/infonew/0/wechat_pics_-52553518.jpg/640","mark":"","url":"http://v.juhe.cn/weixin/redirect?wid=wechat_20171010010142"},{"id":"wechat_20171010010124","title":"别错过孩子的绘画敏感期,法国艺术启蒙教材来了!丨明日团","source":"成长树","firstImg":"http://zxpic.gtimg.com/infonew/0/wechat_pics_-52553442.jpg/640","mark":"","url":"http://v.juhe.cn/weixin/redirect?wid=wechat_20171010010124"},{"id":"wechat_20171010010168","title":"ONE实验室解散,\u201c特稿梦之队\u201d集体离职","source":"刺猬公社","firstImg":"http://zxpic.gtimg.com/infonew/0/wechat_pics_-51347735.jpg/640","mark":"","url":"http://v.juhe.cn/weixin/redirect?wid=wechat_20171010010168"},{"id":"wechat_20171010011111","title":"10/10 丁酉八月二十一日丨【天皇至道太清玉册】朝修吉辰章","source":"腾讯道学","firstImg":"http://zxpic.gtimg.com/infonew/0/wechat_pics_-43332142.static/640","mark":"","url":"http://v.juhe.cn/weixin/redirect?wid=wechat_20171010011111"},{"id":"wechat_20171010011071","title":"?囿于\u201c立足境\u201d的清香茉莉花 \u2014\u2014从《旷性怡情》分析贾迎春的人物形象","source":"红楼梦学刊","firstImg":"http://zxpic.gtimg.com/infonew/0/wechat_pics_-34106286.jpg/640","mark":"","url":"http://v.juhe.cn/weixin/redirect?wid=wechat_20171010011071"},{"id":"wechat_20171010011469","title":"高莽:\u201c翻译是要流汗的\u201d丨纪念","source":"文艺报1949","firstImg":"http://zxpic.gtimg.com/infonew/0/wechat_pics_-52556042.jpg/640","mark":"","url":"http://v.juhe.cn/weixin/redirect?wid=wechat_20171010011469"},{"id":"wechat_20171010011387","title":"今日主播:海飞(编剧、作家)","source":"文艺报1949","firstImg":"http://zxpic.gtimg.com/infonew/0/wechat_pics_-9440725.jpg/640","mark":"","url":"http://v.juhe.cn/weixin/redirect?wid=wechat_20171010011387"},{"id":"wechat_20171010009179","title":"真正的成功,就是家庭幸福","source":"如何提升自信","firstImg":"http://zxpic.gtimg.com/infonew/0/wechat_pics_-52551649.jpg/640","mark":"","url":"http://v.juhe.cn/weixin/redirect?wid=wechat_20171010009179"}]
         * totalPage : 5285
         * ps : 30
         * 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_20171010017746
             * title : 工匠祖师爷鲁班的十大发明,向工匠精神致敬!
             * source : 航空制造网
             * firstImg : http://zxpic.gtimg.com/infonew/0/wechat_pics_-46247538.jpg/640
             * mark :
             * url : http://v.juhe.cn/weixin/redirect?wid=wechat_20171010017746
             */

            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;
            }
        }
    }
}

====================================ImageLoaderUtil==============================================================

package news1510a.bawei.com.a08_imageloader_demo.util;

import android.content.Context;
import android.graphics.Bitmap;
import android.os.Environment;

import com.nostra13.universalimageloader.cache.disc.impl.UnlimitedDiskCache;
import com.nostra13.universalimageloader.cache.memory.impl.LruMemoryCache;
import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;
import com.nostra13.universalimageloader.core.assist.ImageScaleType;
import com.nostra13.universalimageloader.core.assist.QueueProcessingType;
import com.nostra13.universalimageloader.core.display.CircleBitmapDisplayer;
import com.nostra13.universalimageloader.core.display.RoundedBitmapDisplayer;
import com.nostra13.universalimageloader.core.display.SimpleBitmapDisplayer;
import com.nostra13.universalimageloader.utils.StorageUtils;

import java.io.File;

import news1510a.bawei.com.a08_imageloader_demo.R;

/**
 * @author Dash
 * @date 2017/10/10
 * @description:
 */
public class ImageLoaderUtil {

    /**
     * 对imageLoader进行配置的方法
     * @param context 上下文
     */
    public static void init(Context context) {

        File cacheDir = StorageUtils.getCacheDirectory(context);  //指定默认的硬盘(sd卡)的缓存文件夹路径

        /**
         * 可以自己创建一个sd下面的文件夹作为硬盘缓存的路径
         * 三个操作
         * 1.删除前四行
         * 2.更名diskCache(new UnlimitedDiskCache(cacheDir))
         * 3.删除报错的一行

         */
        File file = new File(Environment.getExternalStorageDirectory(),"image");
        if (! file.exists()){
            file.mkdirs();
        }

        //1.创建一个ImageLoaderConfiguration,,,图片加载器的配置对象
        ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(context)

                .threadPoolSize(3) // default  线程池内加载的数量
                .threadPriority(Thread.NORM_PRIORITY - 2) // default 设置当前线程的优先级
                .tasksProcessingOrder(QueueProcessingType.FIFO) // default
                .denyCacheImageMultipleSizesInMemory()

                //1 TB = 1024GB 1G=1024MB 1M = 1024KB 1KB = 1024BYTE
                //LruMemoryCache,,lru最近最少使用算法...内部维护的是LinkedHashMap,,当一张图片最近很少使用的时候会从mao集合里面移除
                .memoryCache(new LruMemoryCache(2 * 1024 * 1024)) //指定内存缓存的大小,,2M,,可以通过自己的内存缓存实现
                .memoryCacheSize(2 * 1024 * 1024)  // 内存缓存的最大值
                .memoryCacheSizePercentage(13) // default

                //指定硬盘/磁盘缓存的路径
                .diskCache(new UnlimitedDiskCache(cacheDir)) // default 可以自定义缓存路径
                .diskCacheSize(50 * 1024 * 1024) // 50 Mb sd卡(本地)缓存的最大值
                .diskCacheFileCount(100)  // 可以缓存的文件数量


                .defaultDisplayImageOptions(DisplayImageOptions.createSimple()) // default
                .writeDebugLogs() // 打印debug log
                .build(); //开始构建

        //2.对上面配置对象的初始化
        ImageLoader.getInstance().init(config);

    }

    /**
     * 默认的展示图片的选项
     * 1.改默认显示的图片,,,三个地方
     * 2.所有的false全都改成true
     * 3.把...的全都删除,,一共四行
     * 4.删除handler
     * 5.改imageScaleType,,,改成565
     * @return
     */
    public static DisplayImageOptions getDefaultOption() {
        DisplayImageOptions options = new DisplayImageOptions.Builder()
                .showImageOnLoading(R.mipmap.ic_launcher) // 设置图片下载期间显示的图片
                .showImageForEmptyUri(R.mipmap.ic_launcher) // 设置图片Uri为空或是错误的时候显示的图片
                .showImageOnFail(R.mipmap.ic_launcher) // 设置图片加载或解码过程中发生错误显示的图片

                .resetViewBeforeLoading(true)  // default 设置图片在加载前是否重置、复位

                .cacheInMemory(true) // default  设置下载的图片是否缓存在内存中
                .cacheOnDisk(true) // default  设置下载的图片是否缓存在SD卡中

                .considerExifParams(true) // default


                .imageScaleType(ImageScaleType.EXACTLY_STRETCHED) // default 设置图片以如何的编码方式显示
                .bitmapConfig(Bitmap.Config.RGB_565) // default 设置图片的解码类型

                .displayer(new SimpleBitmapDisplayer()) // default  还可以设置圆角图片new RoundedBitmapDisplayer(20)

                .build();

        return options;
    }

    /**
     * 展示圆角的选项
     * @return
     */
    public static DisplayImageOptions getRoundOption() {
        DisplayImageOptions options = new DisplayImageOptions.Builder()
                .showImageOnLoading(R.mipmap.ic_launcher) // 设置图片下载期间显示的图片
                .showImageForEmptyUri(R.mipmap.ic_launcher) // 设置图片Uri为空或是错误的时候显示的图片
                .showImageOnFail(R.mipmap.ic_launcher) // 设置图片加载或解码过程中发生错误显示的图片

                .resetViewBeforeLoading(true)  // default 设置图片在加载前是否重置、复位

                .cacheInMemory(true) // default  设置下载的图片是否缓存在内存中
                .cacheOnDisk(true) // default  设置下载的图片是否缓存在SD卡中

                .considerExifParams(true) // default


                .imageScaleType(ImageScaleType.EXACTLY_STRETCHED) // default 设置图片以如何的编码方式显示
                .bitmapConfig(Bitmap.Config.RGB_565) // default 设置图片的解码类型

                .displayer(new RoundedBitmapDisplayer(20)) // default  还可以设置圆角图片new RoundedBitmapDisplayer(20)

                .build();

        return options;
    }

    /**
     * 展示圆形的选项
     * @return
     */
    public static DisplayImageOptions getCircleOption() {
        DisplayImageOptions options = new DisplayImageOptions.Builder()
                .showImageOnLoading(R.mipmap.ic_launcher) // 设置图片下载期间显示的图片
                .showImageForEmptyUri(R.mipmap.ic_launcher) // 设置图片Uri为空或是错误的时候显示的图片
                .showImageOnFail(R.mipmap.ic_launcher) // 设置图片加载或解码过程中发生错误显示的图片

                .resetViewBeforeLoading(true)  // default 设置图片在加载前是否重置、复位

                .cacheInMemory(true) // default  设置下载的图片是否缓存在内存中
                .cacheOnDisk(true) // default  设置下载的图片是否缓存在SD卡中

                .considerExifParams(true) // default


                .imageScaleType(ImageScaleType.EXACTLY_STRETCHED) // default 设置图片以如何的编码方式显示
                .bitmapConfig(Bitmap.Config.RGB_565) // default 设置图片的解码类型

                .displayer(new CircleBitmapDisplayer()) // default  还可以设置圆角图片new RoundedBitmapDisplayer(20)

                .build();

        return options;
    }
}