首先在gradle中引入
implementation 'com.youth.banner:banner:1.4.10'
该控件github地址 :
youth banner
布局文件引入banner
<com.youth.banner.Banner
android:id="@+id/home_banner"
android:layout_width="match_parent"
android:layout_height="200dp">
</com.youth.banner.Banner>
获取View,加入图片(一般是网络路径,通过glide等加载)和标题,图片个数要和标题个数对应,否则报错。
private Banner homeBanner;
homeBanner = view.findViewById(R.id.home_banner);
homeBanner.setImageLoader(new BannerLoader()); //使用Glide等加载图片
homeBanner.setBannerStyle(BannerConfig.CIRCLE_INDICATOR_TITLE); //indicator样式(该处为小圆点)
homeBanner.setBannerAnimation(Transformer.Default);//banner切换的动画
homeBanner.setImages(bannerUrlList);//图片路径数组
homeBanner.setBannerTitles(bannerTitleList);//标题数组
homeBanner.isAutoPlay(true);//设置自动播放
homeBanner.setDelayTime(3000);//设置播放间隔
homeBanner.setIndicatorGravity(Gravity.CENTER);//indicator 位置
homeBanner.start();//开始渲染
BannerLoader 代码:
public class BannerLoader extends ImageLoader {
@Override
public void displayImage(Context context, Object path, ImageView imageView) {
Glide.with(context).load((String)path).into(imageView);
}
}
Glide一般在项目中可以封装一层(后续可以比较容易的更换图片加载框架或者方式),此处为了方便直接使用链式调用。