PullToRefresh+Banner无限轮播

来源:互联网 发布:女淘宝网店铺名字大全 编辑:程序博客网 时间:2024/06/08 11:26
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;
        }