PullToRefreshListView添加头部Banner

来源:互联网 发布:网易邮箱数据泄露 编辑:程序博客网 时间:2024/05/21 08:44
public class ChildFrag1 extends Fragment {    String uri;    int aa = 1;    List<String> image=new ArrayList<String>();    List<Bean.DataBean> list = new ArrayList<Bean.DataBean>();    private MyAdapter adapter;    private PullToRefreshListView pull;    private ImageLoader instance;    private View view1;    @Nullable    @Override    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {        View view = inflater.inflate(R.layout.activity_childfrag1, container, false);        pull = view.findViewById(R.id.pull_refresh_list);        pull.setMode(PullToRefreshBase.Mode.BOTH);        instance = ImageLoader.getInstance();        ListView lv = pull.getRefreshableView();        setUri(aa + "");        new GetDataTake().execute(uri);        adapter = new MyAdapter();        view1 = View.inflate(getActivity(), R.layout.activity_banner, null);        lv.addHeaderView(view1);        lv.setAdapter(adapter);        pull.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() {            @Override            public void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView) {                list.clear();                aa = 1;                setUri(aa + "");                new GetDataTake().execute(uri);            }            @Override            public void onPullUpToRefresh(PullToRefreshBase<ListView> refreshView) {                aa++;                setUri(aa + "");                new GetDataTake().execute(uri);            }        });        return  view;}    class GetDataTake extends AsyncTask<String,Void,String> {        @Override        protected String doInBackground(String... strings) {            String aoto = Util.aoto(strings[0]);            return aoto;        }        @Override        protected void onPostExecute(String s) {            Gson gson=new Gson();            Bean bean = gson.fromJson(s, Bean.class);            List<Bean.DataBean> data = bean.getData();            for (int i = 0; i < data.size(); i++) {                image.add(data.get(i).getPic_url());            }            Banner banner = view1.findViewById(R.id.banner);            banner.setImageLoader(new MLoader());            banner.setImages(image);            banner.start();            list.addAll(data);            adapter.notifyDataSetChanged();            pull.onRefreshComplete();            super.onPostExecute(s);        }    }    class MyAdapter extends BaseAdapter {        @Override        public int getCount() {            return list.size();        }        @Override        public Object getItem(int i) {            return null;        }        @Override        public long getItemId(int i) {            return 0;        }        @Override        public View getView(int i, View view, ViewGroup viewGroup) {            if(view==null){                view=View.inflate(getActivity(),R.layout.activity_child_list,null);            }            ImageView iv_list = view.findViewById(R.id.iv_list);            TextView tv_list = view.findViewById(R.id.tv_list);            tv_list.setText(list.get(i).getNews_title());            instance.displayImage(list.get(i).getPic_url(),iv_list,ImageLoaderUtils_circle.getDisplayImageOption());            return view;        }    }    public void setUri(String aa) {        uri = "http://api.expoon.com/AppNews/getNewsList/type/1/p/" + aa;    }    private class MLoader extends com.youth.banner.loader.ImageLoader{        //这个就是专门让我们重写,加载图片的具体逻辑        @Override        public void displayImage(Context context, Object path, ImageView imageView) {            instance.displayImage((String)path,imageView);        }    }} //配置图片设置 class ImageLoaderUtils_circle {    public static DisplayImageOptions getDisplayImageOption() {        DisplayImageOptions options = new DisplayImageOptions.Builder()                .showImageOnLoading(R.mipmap.ic_launcher) //设置图片在下载期间显示的图片                .showImageForEmptyUri(R.mipmap.ic_launcher)//设置图片Uri为空或是错误的时候显示的图片                .showImageOnFail(R.mipmap.ic_launcher)  //设置图片加载/解码过程中错误时候显示的图片                .cacheInMemory(true)//设置下载的图片是否缓存在内存中                .cacheOnDisk(true)                .considerExifParams(true)  //是否考虑JPEG图像EXIF参数(旋转,翻转)                .imageScaleType(ImageScaleType.EXACTLY_STRETCHED)//设置图片以如何的编码方式显示                .bitmapConfig(Bitmap.Config.RGB_565)//设置图片的解码类型//                .displayer(new RoundedBitmapDisplayer(20))//是否设置为圆角,弧度为多少//                .displayer(new FadeInBitmapDisplayer(100))//是否图片加载好后渐入的动画时间                .build();//构建完成        return options;    }}
原创粉丝点击