_20_04_21安卓轮播图片

  1. 搭建轮播页面:开源地址https://github.com/youth5201314/banner

<com.youth.banner.Banner
android:id="@+id/banner_home_header"
android:layout_width=“match_parent”
android:layout_height=“240dp”/>
3. 添加轮播插件:
4. //开源轮播控件
implementation ‘com.youth.banner:banner:2.0.2’
5. 在安卓节点添加一段兼容性的代码:
6. compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
在这里插入图片描述
8. 然后,在服务端准备好轮播图片,并把轮播图片的名字存进去数据库,
9. 准备好查询方法,声明一个VO,为的是把属性的首字母在传输到App上是小写的:

在这里插入图片描述

在这里插入图片描述
12. 然后通过App来发送请求:
13. 同样,在App接收,我们也用一个类接收,实质是一样的,就是样子长得不一样:
在这里插入图片描述
在这里插入图片描述
16. Get和set长得和vs中的有点不一样;
17. 再声明一个类:HomeBannerAdapter
18. public class HomeBannerAdapter extends BannerAdapter<BannerBean, HomeBannerAdapter.BannerViewHolder> {

private Context context;

//构造函数  传递数据到适配器
public HomeBannerAdapter(List<BannerBean> mDatas,Context context) {
    //设置数据,也可以调用banner提供的方法,或者自己在adapter中实现
    super(mDatas);
    this.context=context;
}

//创建ViewHolder,可以用viewType这个字段来区分不同的ViewHolder
@Override
public BannerViewHolder onCreateHolder(ViewGroup parent, int viewType) {
    ImageView imageView = new ImageView(parent.getContext());
    //注意,必须设置为match_parent,这个是viewpager2强制要求的
    imageView.setLayoutParams(new ViewGroup.LayoutParams(
            ViewGroup.LayoutParams.MATCH_PARENT,
            ViewGroup.LayoutParams.MATCH_PARENT));
    imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
    return new BannerViewHolder(imageView);
}

@Override
public void onBindView(BannerViewHolder holder,BannerBean data, int position, int size) {
    //holder.imageView.setImageResource(data.imageRes);
    String imageUrl= ServiceUrls.getMainPageBannerImgUrl(data.getBannerPicture());
    //使用Glide加载图片 最简单的用户
    Glide.with(context)
            .load(imageUrl)
            .into(holder.imageView);
}

class BannerViewHolder extends RecyclerView.ViewHolder {
    ImageView imageView;

    public BannerViewHolder(@NonNull ImageView view) {
        super(view);
        this.imageView = view;
    }
}

}
之后,再Build.gradle中添加引用implementation 在这里插入图片描述
20. 由于显示网络图片,要添加一个框架:
21. //开源图片加载框架 ,自带缓存的
implementation ‘com.github.bumptech.glide:glide:4.11.0’
annotationProcessor ‘com.github.bumptech.glide:compiler:4.11.0’
22. 然后,在子页面进行轮播图片绑定:
在这里插入图片描述
24. 然后,轮播就做好了;在这里插入图片描述
26. 轮播完成之后,我们最后需要借助生命周期来辅助:
27. @Override
public void onStart() {
super.onStart();
//开始轮播
bannerHomeHeader.start();
}

@Override
public void onStop() {
super.onStop();
//停止轮播
bannerHomeHeader.stop();
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章