2021/7/20更新
感谢评论区大哥的帮助,代码已更新
最近想做个轮播图,一直在网上博客看别人写的文章,但是可能因为时间版本问题,或多或少有些bug,最大的问题就是无法显示图片,于是自己结合了几篇博客,终于在模拟器上成功运行,下面是效果图:
然后下面贴源码
//添加依赖
//轮播依赖
implementation'com.youth.banner:banner:1.4.10'
//Glide框架依赖
implementation "com.github.bumptech.glide:glide:4.6.1"
//布局代码
<com.youth.banner.Banner
android:id="@+id/banner"
android:layout_width="match_parent"
android:layout_height="100dp"
android:layout_below="@+id/toolbar"
/>
public class FirstFragment extends Fragment {
private Banner banner;
private List<Integer> image=new ArrayList<>();
private List<String> title=new ArrayList<>();
private void initData() {
image.clear();
title.clear();
image.add(R.drawable.lb_four);
image.add(R.drawable.lb_second);
image.add(R.drawable.lb_first);
image.add(R.drawable.lb_three);
image.add(R.drawable.lb_five);
title.add("圣诞节活动");
title.add("不一样的美");
title.add("夏季推荐");
title.add("家具打折");
title.add("手表上新");
}
private void initView() {
banner.setIndicatorGravity(BannerConfig.CENTER);
banner.setImageLoader(new MyImageLoader());
banner.setImages(image);
banner.setBannerAnimation(Transformer.Default);
banner.isAutoPlay(true);
banner.setBannerTitles(title);
banner.setBannerStyle(BannerConfig.CIRCLE_INDICATOR_TITLE_INSIDE);\\可以根据自己想要的更换stylr
banner.setDelayTime(3000);
banner.setOnBannerListener(this::OnBannerClick);
banner.start();
}
public void OnBannerClick(int position) {
Toast.makeText(getActivity(), "你点了第" + (position + 1) + "张轮播图", Toast.LENGTH_SHORT).show();
}
private class MyImageLoader extends ImageLoader {
public void displayImage(Context context, Object path, ImageView imageView) {
Glide.with(context).load(path).into(imageView);
}
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view =LayoutInflater.from(getActivity()).inflate(R.layout.fragment_first,container,false);
banner = view.findViewById(R.id.banner);
initData();
initView();
return view;
}
}
附指示器属性
setBannerStyle
BannerConfig.NOT_INDICATOR 不显示指示器和标题
BannerConfig.CIRCLE_INDICATOR 显示圆形指示器
BannerConfig.NUM_INDICATOR 显示数字指示器
BannerConfig.NUM_INDICATOR_TITLE 显示数字指示器和标题
BannerConfig.CIRCLE_INDICATOR_TITLE 显示圆形指示器和标题(垂直显示)
BannerConfig.CIRCLE_INDICATOR_TITLE_INSIDE 显示圆形指示器和标题(水平显示)
setIndicatorGravity
BannerConfig.LEFT 指示器居左
BannerConfig.CENTER 指示器居中
BannerConfig.RIGHT 指示器居右
亲测有效,如有错误欢迎指出,有改进的地方欢迎沟通
如果是网络图片记得加权限