您的位置:首页 > 其它

PullToRefresh+Banner无限轮播

2017-11-19 19:17 399 查看
ArrayList<Bean.DataBean> li=new ArrayList<>();

String[] url={"http://pic8.nipic.com/20100701/5290458_114840036316_2.jpg",

        "http://pic2.nipic.com/20090424/1468853_230119053_2.jpg",

        "http://img3.3lian.com/2013/s1/20/d/57.jpg",

        "http://pic39.nipic.com/20140226/18071023_164300608000_2.jpg",

        "http://a0.att.hudong.com/15/08/300218769736132194086202411_950.jpg"};

    private PullToRefreshListView pt1;

    private Banner ban;

    int i=1;

    private ImageLoader instance;

    private Madapter adapter;

    @Nullable

    @Override

    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {

        //获取布局

        View inflate1 = inflater.inflate(R.layout.pullto1, container, false);

        View view1 = View.inflate(getActivity(), R.layout.bann, null);

        instance = ImageLoader.getInstance();

        //获取控件

        pt1 = (PullToRefreshListView) inflate1.findViewById(R.id.pt1);

        ban = (Banner)view1.findViewById(R.id.ban);

        ListView lis = pt1.getRefreshableView();

        lis.addHeaderView(view1);

        ban.setImageLoader(new load());

        ban.setImages(Arrays.asList(url));

        ban.start();

        lini(1);

        adapter = new Madapter();

        pt1.setAdapter(adapter);

         pt1.setMode(PullToRefreshBase.Mode.BOTH);

        pt1.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() {

            @Override

            public void onPullDownToRefresh(PullToRefreshBase<ListView> pullToRefreshBase) {

                  li.clear();

                  lini(1);

            }

            @Override

            public void onPullUpToRefresh(PullToRefreshBase<ListView> pullToRefreshBase) {

                        lini(i++);

            }

        });

        return inflate1;

    }

    private void lini(int i) {

        new Masync().execute("http://api.expoon.com/AppNews/getNewsList/type/1/p/"+i);

    }

    class load extends com.youth.banner.loader.ImageLoader{

        @Override

        public void displayImage(Context context, Object path, ImageView imageView) {

            com.nostra13.universalimageloader.core.ImageLoader.getInstance().displayImage((String) path,imageView,getDisplayImageOption());

        }

    }

    private class Masync extends AsyncTask<String,Void,String>{

        @Override

        protected String doInBackground(String... strings) {

            return Netutil.wen(strings[0]);

        }

        @Override

        protected void onPostExecute(String s) {

            super.onPostExecute(s);

            Gson g=new Gson();

            Bean bean = g.fromJson(s, Bean.class);

            List<Bean.DataBean> data = bean.getData();

             li.addAll(data);

             adapter.notifyDataSetChanged();

            pt1.onRefreshComplete();

        }

    }

    class Madapter extends BaseAdapter{

        private Frg11.holder holder;

        @Override

        public int getCount() {

            return li.size();

        }

        @Override

        public Object getItem(int i) {

            return li.get(i);

        }

        @Override

        public long getItemId(int i) {

            return i;

        }

        @Override

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

            if (view==null){

                holder = new holder();

                view=View.inflate(getActivity(),R.layout.item,null);

                holder.iv = view.findViewById(R.id.iv);

                holder.tv = view.findViewById(R.id.tv);

                view.setTag(holder);

            }else {

                holder=(holder)view.getTag();

            }

            instance.displayImage(li.get(i).getPic_url(), holder.iv,getDisplayImageOption());

            holder.tv.setText(li.get(i).getNews_title());

            return view;

        }

    }

    class holder{

        ImageView iv;

        TextView tv;

    }

    public static DisplayImageOptions getDisplayImageOption() {

            DisplayImageOptions options = new DisplayImageOptions.Builder()

                    .displayer(new RoundedBitmapDisplayer(20))//是否设置为圆角,弧度为多少

                    .build();//构建完成

            return options;

        }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: