文章目录
前言
本博客仅做学习笔记,如有侵权,联系后即刻更改
科普:
下拉刷新
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);
总结
小小励志
有些事你现在不做,一辈子都不会做了。
如果你想做一件事,全世界都会为你让路。
《搭车去柏林》