轮播 +okhttp请求 +imgloader

 
 
public class fragment1 extends Fragment {

    //RecycleView
    String path = "http://result.eolinker.com/umIPmfS6c83237d9c70c7c9510c9b0f97171a308d13b611?uri=homepage";
    XRecyclerView mRecyclerView;
    List<String> imglist = new ArrayList<>();
    List<String> textlist = new ArrayList<>();
    View view;
    //第二个recycleview
    XRecyclerView recycleView;
    List<String> imglist2 = new ArrayList<>();

   //轮播
    private List<bean.DataBean.Ad1Bean> ad1 = new ArrayList<>();
    List<String>ad2=new ArrayList<>();

    //private List<bean.DataBean.Ad5Bean> list = new ArrayList<>();

    //图片的地址和title的集合
    private List<String> mListImage, mListTitle;
    private Banner banner;
    // private List<bean.DataBean.Ad1Bean> ad1 = new ArrayList<>();


    //绑定
    Unbinder unbinder;

    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container,
                             @Nullable Bundle savedInstanceState) {
        view = View.inflate(getActivity(), R.layout.activity_fragment1, null);
        unbinder = ButterKnife.bind(this, view);
        banner = view.findViewById(R.id.banner);
        mRecyclerView = view.findViewById(R.id.recycleview);
        banner();
        recycleView = view.findViewById(R.id.recycleview2);
        boolean netWorkAvailable = NetWorkUtils.isNetWorkAvailable(getContext());
        if (!netWorkAvailable) {
            Toast.makeText(getContext(), "联网:" + netWorkAvailable, Toast.LENGTH_SHORT).show();
        } else {


        }
        getData();
        getData2();
        //banner();

        //第二个刷新
        recycleView.setLoadingListener(new XRecyclerView.LoadingListener() {
            @Override
            public void onRefresh() {
                recycleView.refreshComplete();
            }

            @Override
            public void onLoadMore() {
                recycleView.loadMoreComplete();
            }
        });
        //第一个刷新
        mRecyclerView.setLoadingListener(new XRecyclerView.LoadingListener() {
            @Override
            public void onRefresh() {
                mRecyclerView.refreshComplete();
            }

            @Override
            public void onLoadMore() {
                mRecyclerView.loadMoreComplete();
            }
        });

        return view;

    }

    //请求网络第二个recycleview
    public void getData() {
        OkHttp3Utils.doGet(path, new GsonObjectCallback<bean>() {
            @Override

            public void onUi(bean okBean) {
                List<bean.DataBean.SubjectsBean> subjects = okBean.getData().getSubjects();
                for (int i = 0; i < subjects.size(); i++) {
                    imglist2.add(subjects.get(i).getImage());
                    Log.d("sss", subjects.get(i).getImage());
                }


                OkAdapter2 adapter2 = new OkAdapter2(imglist2, getActivity());

                // mRecyclerView.setLayoutManager(new StaggeredGridLayoutManager(4,
                //StaggeredGridLayoutManager.HORIZONTAL));

                // mRecyclerView.setLayoutManager(new GridLayoutManager(getActivity(),1));
                recycleView.setLayoutManager(new StaggeredGridLayoutManager(1, StaggeredGridLayoutManager.HORIZONTAL));
                recycleView.setAdapter(adapter2);


            }


            @Override
            public void onFailed(Call call, IOException e) {

            }

        });
    }

    //请求网络
    public void getData2() {
        OkHttp3Utils.doGet(path, new GsonObjectCallback<bean>() {
            @Override

            public void onUi(bean okBean) {
                for (int j = 0; j < okBean.getData().getSubjects().size(); j++) {
                    for (int i = 0; i < okBean.getData().getSubjects().get(j).getGoodsList().size(); i++) {
                        String img = okBean.getData().getSubjects().get(j).getGoodsList().get(i).getGoodsImage();
                        String text = okBean.getData().getSubjects().get(j).getGoodsList().get(i).getGoods_name();
                        imglist.add(img);
                        textlist.add(text);
                    }

                }

                OkAdapter adapter = new OkAdapter(imglist, textlist, getActivity());
                mRecyclerView.setAdapter(adapter);
                // mRecyclerView.setLayoutManager(new StaggeredGridLayoutManager(4,
                //StaggeredGridLayoutManager.HORIZONTAL));

                // mRecyclerView.setLayoutManager(new GridLayoutManager(getActivity(),1));
                mRecyclerView.setLayoutManager(new StaggeredGridLayoutManager(2, StaggeredGridLayoutManager.VERTICAL));


            }

            @Override
            public void onFailed(Call call, IOException e) {

            }

        });
    }


    //轮播图
    public void banner() {
//找到控件
        banner = view. findViewById(R.id.banner);
//banner的样式
        banner.setBannerStyle(BannerConfig.CIRCLE_INDICATOR_TITLE_INSIDE);
//加载图片的方法
        banner.setImageLoader(new GlideImageLoader());
        mListImage = new ArrayList<>();
//想图片集合中添加网网址
        mListImage.add("https://image.yunifang.com/yunifang/images/goods/ad0/17100908319495742677657462.jpg");
        mListImage.add("https://image.yunifang.com/yunifang/images/goods/ad0/170905143497021095281713081.jpg");
        mListImage.add("https://image.yunifang.com/yunifang/images/goods/ad0/170905143499118006873413769.jpg");
        mListImage.add("https://image.yunifang.com/yunifang/images/goods/ad0/170823222049920659891841095.jpg");

//设置Banner图片集合
        banner.setImages(mListImage);
//设置banner的动画效果
        banner.setBannerAnimation(Transformer.DepthPage);
//切换的时间
        banner.setDelayTime(2000);
        mListTitle = new ArrayList<>();
//添加Title
        mListTitle.add("第一张图片");
        mListTitle.add("第二张图片");
        mListTitle.add("第三张图片");
        mListTitle.add("第四张图片");

//设置Banner标题集合(当banner样式有显示title时)
        banner.setBannerTitles(mListTitle);
//title的位置在banner的显示
        banner.setIndicatorGravity(BannerConfig.CIRCLE_INDICATOR_TITLE_INSIDE);
//启动banner
        banner.start();

    }


    }
adapter 类
public class OkAdapter  extends XRecyclerView.Adapter<OkAdapter.ViewHolder>  {
    List<String> imglist =new ArrayList<>();
    List<String> textlist =new ArrayList<>();
    Context context;
    View view;

    public OkAdapter(List<String> imglist,List<String> textlist, Context context) {
        this.imglist = imglist;
        this.context = context;
        this.textlist = textlist;
    }

    @Override
    public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        view = LayoutInflater.from(context).inflate(R.layout.item,parent,false);

        ViewHolder vh = new ViewHolder(view);
        return vh;
    }


    @Override
    public void onBindViewHolder(final ViewHolder holder, final int position) {
         holder.mTitle.setText(textlist.get(position));
        Glide.with(context).load(imglist.get(position)).into(holder.mIv);



    }

    @Override
    public int getItemCount() {
        return imglist.size();
    }

    public class ViewHolder extends XRecyclerView.ViewHolder {
       TextView mTitle;
         ImageView mIv;
        public ViewHolder(View itemView) {
            super(itemView);
            mTitle =  view.findViewById(R.id.textitem);
            mIv = view.findViewById(R.id.itemimg);
        }
    }

}
imgloader
public class GlideImageLoader implements ImageLoaderInterface {


    @Override
    public void displayImage(Context context, Object path, View imageView) {
        //使用glide加载图片

        Glide.with(context).load(path).into((ImageView) imageView);
    }

    @Override
    public View createImageView(Context context) {
        return null;
    }
}

public class MyApp extends Application{
    private static Context instance;

    @Override
    public void onCreate() {
        super.onCreate();


        instance = this;
        initImg();
    }
    private void initImg() {
        DisplayImageOptions options  = new DisplayImageOptions.Builder()
                .cacheInMemory(true)//允许内存缓存
                .cacheOnDisk(true)//允许磁盘缓存
                .showImageForEmptyUri(R.mipmap.ic_launcher)//uri为空的时候,设置图片
                .showImageOnFail(R.mipmap.ic_launcher)//失败的时候,设置图片
                .showImageOnLoading(R.mipmap.ic_launcher)//加载过程中需要显示的图片,设置图片
                .build();
        ImageLoaderConfiguration configuration  = new ImageLoaderConfiguration.Builder(this)
                .defaultDisplayImageOptions(options)
                .build();
        ImageLoader.getInstance().init(configuration);
    }

    public static Context getInstance() {
        return instance;
    }

}

adapter类
public class MyAdapter extends  RecyclerView.Adapter<MyAdapter.ViewHolder>{
    List<String> imglist =new ArrayList<>();
    List<String> textlist =new ArrayList<>();
    Context context;
    View view;

    public MyAdapter(List<String> imglist, List<String> textlist,Context context) {
        this.imglist = imglist;
        this.context = context;
        this.textlist = textlist;
    }

    @Override
    public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        view = LayoutInflater.from(context).inflate(R.layout.item2,parent,false);

        ViewHolder vh = new ViewHolder(view);
        return vh;
    }

    @Override
    public void onBindViewHolder(MyAdapter.ViewHolder holder, int position) {
        holder.text.setText(textlist.get(position));
        //Glide.with(context).load(imglist.get(position)).into(holder.img);
        ImageLoader.getInstance().displayImage(imglist.get(position),holder.img);
    }




    @Override
    public int getItemCount() {
        return imglist.size() ;
    }
 public  class  ViewHolder extends RecyclerView.ViewHolder{

      ImageView img;
      TextView text;


     public ViewHolder(View itemView) {
         super(itemView);
         img =  view.findViewById(R.id.img);
         text = view.findViewById(R.id.text);

     }
 }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值