Android学习-下拉刷新、轮播图


前言

本博客仅做学习笔记,如有侵权,联系后即刻更改

科普:


下拉刷新

1. 引入第三方控件(当前文件的gradle下的dependencies内)

SmartRefreshLayout官网: github/gitee

implementation  'io.github.scwang90:refresh-layout-kernel:2.0.5'//核心必须依赖
implementation  'io.github.scwang90:refresh-header-classics:2.0.5'//经典刷新头
implementation  'io.github.scwang90:refresh-header-radar:2.0.5'//雷达刷新头
implementation  'io.github.scwang90:refresh-header-falsify:2.0.5'//虚拟刷新头
implementation  'io.github.scwang90:refresh-header-material:2.0.5' //谷歌刷新头
implementation  'io.github.scwang90:refresh-header-two-level:2.0.5' //二级刷新头
implementation  'io.github.scwang90:refresh-footer-ball:2.0.5' //球脉冲加载
implementation  'io.github.scwang90:refresh-footer-classics:2.0.5' //经典加载 

2. 添加引用(gradle.propeties文件)

android.enableJetifier=true
在这里插入图片描述

3. 使用代码

//          下拉刷新
        smartRefreshLayout = getActivity().findViewById(R.id.refresh_layout);
        smartRefreshLayout.setRefreshHeader(new MaterialHeader(getActivity()));
        smartRefreshLayout.setRefreshFooter(new BallPulseFooter(getActivity()));

        上拉加载更多
        smartRefreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() {
            @Override
            public void onLoadMore(@NonNull RefreshLayout refreshLayout) {
                Api api =RetrofitUtils.getRetrofit("https://api.apiopen.top/api/").create(Api.class);
                Call<TypeVideos> videosCall = api.getVideos(0,10);
                videosCall.enqueue(new Callback<TypeVideos>() {
                    @Override
                    public void onResponse(Call<TypeVideos> call, Response<TypeVideos> response) {
                        TypeVideos typeVideos = response.body();
                        myAdapter3 = new MyAdapter();
                        recyclerView.setAdapter(myAdapter3);
                        for (int i = 0; i < 10; i++){
                            movieUrl.add(typeVideos.result.list.get(i).playUrl);
                            title.add(typeVideos.result.list.get(i).title);
                            image.add(typeVideos.result.list.get(i).coverUrl);
                        }
                        myAdapter3.notifyDataSetChanged();
                        smartRefreshLayout.finishRefresh(1000);
                    }

                    @Override
                    public void onFailure(Call<TypeVideos> call, Throwable t) {

                    }
                });
            }
        });

//          下拉刷新
        smartRefreshLayout.setOnRefreshListener(new OnRefreshListener() {
            @Override
            public void onRefresh(@NonNull RefreshLayout refreshLayout) {
                movieUrl.clear();
                title.clear();
                image.clear();
                Api api =RetrofitUtils.getRetrofit("https://api.apiopen.top/api/").create(Api.class);
                Call<TypeVideos> videosCall = api.getVideos(0,10);
                videosCall.enqueue(new Callback<TypeVideos>() {
                    @Override
                    public void onResponse(Call<TypeVideos> call, Response<TypeVideos> response) {
                        TypeVideos typeVideos = response.body();
                        myAdapter3 = new MyAdapter();
                        recyclerView.setAdapter(myAdapter3);
                        for (int i = 0; i < 10; i++){
                            movieUrl.add(typeVideos.result.list.get(i).playUrl);
                            title.add(typeVideos.result.list.get(i).title);
                            image.add(typeVideos.result.list.get(i).coverUrl);
                        }
                        myAdapter3.notifyDataSetChanged();
                        smartRefreshLayout.finishRefresh(1000);
                    }

                    @Override
                    public void onFailure(Call<TypeVideos> call, Throwable t) {

                    }
                });
            }
        });

    }

网络图片制作轮播图

1. 引入依赖包

轮播图依赖包链接

//轮播图
       implementation 'io.github.youth5201314:banner:2.2.2'

//网络请求
        implementation 'com.github.bumptech.glide:glide:4.13.0'
        annotationProcessor 'com.github.bumptech.glide:compiler:4.13.0'

2. 联网申请(AndroidManifest)

<uses-permission android:name="android.permission.INTERNET"/>
android:usesCleartextTraffic="true"

在这里插入图片描述

3. 创建banner控件(.xml)

在这里插入图片描述

4. 使用代码(.java)

//初始化参数(全局变量)
    Banner banner;
    List<String> bannerlist =new ArrayList<>();

//加载banner和网络图片地址(onCreate中)
    banner.findViewById(R.id.banner);
    bannerlist.add("https://img.wowoqq.com/allimg/image/506.jpg");
    bannerlist.add("https://img.wowoqq.com/allimg/image/504.jpg");

//实现动态切换(onCreate中)
    banner.setAdapter(new BannerImageAdapter<String>(bannerlist) {
    @Override    public void onBindView(BannerImageHolder holder, String data, int position, int size) {
    //进行网络图片加载        Glide.with(holder.imageView)
                    .load(data)
                    .into(holder.imageView);    }});
  //  设置下部指示圆点
        banner.setIndicator(new CircleIndicator(this));
        banner.setIndicatorRadius(80);

在这里插入图片描述

总结

小小励志

有些事你现在不做,一辈子都不会做了。
如果你想做一件事,全世界都会为你让路。
《搭车去柏林》

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值