王学岗Banner的使用

第一部分:Banner简介

Banner能实现循环播放多个广告图片和手动滑动循环等功能。因为原生ViewPager并不支持循环翻页,要实现循环还得需要自己去动手。Banner框架可以进行不同样式、不同动画设置,以及完善的api方法能满足大部分软件首页轮播图效果的需求。Banner网址

第二部分:Banner的基本使用

导入依赖:

dependencies{
    implementation 'com.youth.banner:banner:1.4.10'  //最新版本
} 

在xml文件中使用

   

使用

    banner.setImages(imageList).setImageLoader(new ImageLoader() {
            @Override
            public void displayImage(Context context, Object path, ImageView imageView) {
                Glide.with(context).load(path).into(imageView);
            }
        }).start();

注意:imageList是一个List集合,可以是图片网址,也可以是R.mipmap.×××
轮播图播放

 banner.startAutoPlay();

轮播图停止播放

 banner.stopAutoPlay();

轮播图更新

   banner.update(imageList);

轮播图更新有bug,我一直没找到解决的方法,希望万能的网友能告诉我
设置动画

 banner.setBannerAnimation(AccordionTransformer.class);

动画的方式可以选择的种类还有如下

        DefaultTransformer.class;
        AccordionTransformer.class;
        BackgroundToForegroundTransformer.class;
        ForegroundToBackgroundTransformer.class;
        CubeInTransformer.class;//兼容问题,慎用
        CubeOutTransformer.class;
        DepthPageTransformer.class;
        FlipHorizontalTransformer.class;
        FlipVerticalTransformer.class;
        RotateDownTransformer.class;
        RotateUpTransformer.class)
        ScaleInOutTransformer.class;
        StackTransformer.class;
        TabletTransformer.class;
        ZoomInTransformer.class;
        ZoomOutTranformer.class;
        ZoomOutSlideTransformer.class;

当然我们也可以参照上面的类自定义动画。

设置不同的样式

  banner.setImages(imageList).setBannerTitles(titlesList).setBannerStyle(BannerConfig.CIRCLE_INDICATOR_TITLE_INSIDE).setImageLoader(new ImageLoader() {
            @Override
            public void displayImage(Context context, Object path, ImageView imageView) {
                Glide.with(context).load(path).into(imageView);
            }
        }).start();

可选的样式

 BanerConfig.CIRCLE_INDICATOR_TITLE_INSIDE//带有文字,即setBannerTitles()中设置的
        BannerConfig.CIRCLE_INDICATOR_TITLE//带有文字,即setBannerTitles()中设置的
        BannerConfig.NUM_INDICATOR_TITLE//带有文字,即setBannerTitles()中设置的
        BannerConfig.NUM_INDICATOR//右下角圆圈
        BannerConfig.CIRCLE_INDICATOR//中间原点
        BannerConfig.NOT_INDICATOR;//没有样式

更新样式

    banner.updateBannerStyle(BannerConfig.CIRCLE_INDICATOR_TITLE_INSIDE);

设置指示器的位置

    banner.setIndicatorGravity(BannerConfig.LEFT);
                
    banner.setIndicatorGravity(BannerConfig.CENTER);
           
   banner.setIndicatorGravity(BannerConfig.RIGHT);

你可能感兴趣的:(王学岗Banner的使用)