安卓实现Banner轮播图自定义图片(非网络图片)

需要一个轮播图,研究了一下,github上最好的就是这个banner了。

安卓实现Banner轮播图自定义图片(非网络图片)_第1张图片

首先,在build.gradle中添加依赖:

 implementation 'com.youth.banner:banner:1.4.10'  //轮播图

这个第三方的实现效果最丰富,使用的人数最多,而且还最方便,点赞。下面是官方宣传图:

安卓实现Banner轮播图自定义图片(非网络图片)_第2张图片

安卓实现Banner轮播图自定义图片(非网络图片)_第3张图片

好了。下面是使用方法,首先在布局中添加上:

然后找到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 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();

然后运行代码就能出来结果。下面贴出github的地址:

Github地址

 

你可能感兴趣的:(安卓进阶之旅)