前几天碰到一个项目,有一个轮播图效果,刚刚来公司的小伙子要用viewpager,我很纳闷,banner这么好用的轮播图,他竟然不知道,我来介绍一下banner
banner是一个比viewpager更加便捷的轮播图控件
首先,要导入依赖包
compile 'com.youth.banner:banner:1.4.9' compile 'com.github.bumptech.glide:glide:3.7.0'这里面会有一个图片加载,用到glide
布局很见简单
<com.youth.banner.Banner android:id="@+id/ban" android:layout_width="match_parent" android:layout_height="250dp"> </com.youth.banner.Banner>
然后是数据
banner = (Banner) findViewById(R.id.ban); //放图片地址的集合 list_path = new ArrayList<>(); //放标题的集合 list_title = new ArrayList<>(); list_path.add("http://ww4.sinaimg.cn/large/006uZZy8jw1faic21363tj30ci08ct96.jpg"); list_path.add("http://ww4.sinaimg.cn/large/006uZZy8jw1faic259ohaj30ci08c74r.jpg"); list_path.add("http://ww4.sinaimg.cn/large/006uZZy8jw1faic2b16zuj30ci08cwf4.jpg"); list_path.add("http://ww4.sinaimg.cn/large/006uZZy8jw1faic2e7vsaj30ci08cglz.jpg"); list_title.add("图片111"); list_title.add("图片222"); list_title.add("图片333"); list_title.add("图片444"); 下面就是banner的配置了//设置内置样式,共有六种可以点入方法内逐一体验使用。 banner.setBannerStyle(BannerConfig.CIRCLE_INDICATOR_TITLE_INSIDE); //设置图片加载器,图片加载器在下方 banner.setImageLoader(new MyLoader()); //设置图片网址或地址的集合 banner.setImages(list_path); //设置轮播的动画效果 /* banner.setBannerAnimation(Transformer.);*/ //设置轮播图的标题集合 banner.setBannerTitles(list_title); //设置轮播间隔时间 banner.setDelayTime(2000); //设置是否为自动轮播,默认是“true”。 banner.isAutoPlay(true); //设置指示器的位置,小圆点,左中右。 banner.setIndicatorGravity(BannerConfig.CENTER) //轮播图的监听 .setOnBannerListener(this) //必须最后调用的方法,启动轮播图。 .start();这里面activity需要实现OnBannerListener接口
这是重写的方法,可以在这里对图片进行操作public void OnBannerClick(int position) { Toast.makeText(MainActivity.this,"你点了第" + position + "张轮播图",Toast.LENGTH_SHORT).show(); }//自定义的图片加载器 private class MyLoader extends ImageLoader { @Override public void displayImage(Context context, Object path, ImageView imageView) { Glide.with(context).load((String) path).into(imageView); } }