首先,在build.gradle中添加依赖:
implementation 'com.youth.banner:banner:1.4.10' //轮播图
下面是使用方法,首先在布局中添加上:
<com.youth.banner.Banner
android:id="@+id/banner"
android:layout_width="match_parent"
android:layout_height="150dp" />
然后找到id,进行一些设置:
banner = view.findViewById(R.id.banner);
//设置banner样式
banner.setBannerStyle(BannerConfig.NUM_INDICATOR);
//设置图片加载器
banner.setImageLoader(new GlideImageLoader());
//设置图片集合
banner.setImages(images);
//设置轮播时间
banner.setDelayTime(2000);
//banner设置方法全部调用完毕时最后调用
banner.start();
注意,image是一个图片的集合:
private List<Integer> images = new ArrayList<>();
images.add(R.drawable.a);
images.add(R.drawable.b);
images.add(R.drawable.c);
最后,写一下图片加载器
public class GlideImageLoader extends ImageLoader {
@Override
public void displayImage(Context context, Object path, ImageView imageView) {
imageView.setImageResource((Integer) path);
}
//提供createImageView 方法,如果不用可以不重写这个方法,主要是方便自定义ImageView的创建
@Override
public ImageView createImageView(Context context) {
//使用fresco,需要创建它提供的ImageView,当然你也可以用自己自定义的具有图片加载功能的ImageView
return new ImageView(context);
}
}
还有一些其他的属性可以设置:
Banner banner = (Banner) findViewById(R.id.banner);
//设置banner样式
banner.setBannerStyle(BannerConfig.CIRCLE_INDICATOR_TITLE);
//设置图片加载器
banner.setImageLoader(new GlideImageLoader());
//设置图片集合
banner.setImages(images);
//设置banner动画效果
banner.setBannerAnimation(Transformer.DepthPage);
//设置标题集合(当banner样式有显示title时)
banner.setBannerTitles(titles);
//设置自动轮播,默认为true
banner.isAutoPlay(true);
//设置轮播时间
banner.setDelayTime(1500);
//设置指示器位置(当banner模式中有指示器时)
banner.setIndicatorGravity(BannerConfig.CENTER);
//banner设置方法全部调用完毕时最后调用
banner.start();
转载链接:https://blog.csdn.net/haojiagou/article/details/82629039
github链接:https://github.com/youth5201314/banner