Android轮播banner的使用

图片轮播基本上是所有软件都包含的一个UI模块,很多软件都会添加一个轮播图片来让页面内容变得丰富,界面变得美观。平常我们可以使用ViewPager去自己手动编写一个轮播,不过大多数使用过的人应该都有一种感受,就是代码编写量很多,而且效果差。这里为大家推荐一个第三方开源库banner的使用,进入正题:

  1. 在build.gradle中添加banner的依赖和图片加载框架Glide依赖
    compile 'com.youth.banner:banner:1.4.9'
    compile 'com.github.bumptech.glide:glide:3.7.0'
     
  2. 在布局中引入控件Banner
    <com.youth.banner.Banner
            android:layout_width="match_parent"
            android:layout_height="128dp"
            android:id="@+id/banner_recent"></com.youth.banner.Banner>
  3. 主活动中开始对Banner进行资源添加和属性设置以及事件处理:
  • 第一步,获取Banner轮播的图片和文字资源
    String[] images= new String[] { 
        "http://www.baidu.com/123.png", 
        "http://www.baidu.com/123.png", 
        "http://www.baidu.com/123.png", 
        "http://www.baidu.com/123.png" };
    String[] tips=new String[] { 
        "我的日记",
        "我的周记", 
        "我的感悟", 
        "我的生活" };
    // 加载图片和标题内容
    List imageList = new ArrayList();
    List titleList = new ArrayList();
    for (int i = 0; i < images.length; i++) { 
        imageList.add(images[i]); 
        titleList.add(tips[i]);
    }
  • 第二步,设置图片加载器,使用Glide框架进行图片加载,当然其他的图片加载框架也可以,个人觉得Glide最好用。
    mBanner = (Banner) findViewById(R.id.banner_recent);
    // 设置加载器
    mBanner.setImageLoader(new ImageLoader() { 
        @Override 
        public void displayImage(Context context, Object path, ImageView imageView) { 
            Glide.with(context).load(path).into(imageView); 
        }
    });
  • 第三步,设置Banner的相关属性,这里通过setBannerStyle(BannerConfig.NUM_INDICATOR_TITLE)设置轮播显示页码和标题,当然也还有其他效果,比如设置为只显示页码、只显示指示器、显示指示器和标题等,所有效果均通过BannerConfig.xxx参数进行设置。
    // 设置相关属性
    mBanner.setBannerStyle(BannerConfig.NUM_INDICATOR_TITLE);//设置页码与标题
    mBanner.setDelayTime(3000);//设置轮播时间
    mBanner.setImages(imageList);//设置图片源
    mBanner.setBannerTitles(titleList);//设置标题
    mBanner.start();
  • 第四步,设置Banner的点击事件,如果不需要有轮播图片点击效果的可忽略。
    mBanner.setOnBannerListener(this);// 让主活动实现OnBannerListener接口
    @Override
    public void OnBannerClick(int position) {
    
        switch (position) {
            case 0:
                ToastUtil.toast(getActivity(),titleList.get(0).toString());
                break;
            case 1:
                ToastUtil.toast(getActivity(),titleList.get(1).toString());
                break;
            case 2:
                ToastUtil.toast(getActivity(),titleList.get(2).toString());
                break;
            case 3:
                ToastUtil.toast(getActivity(),titleList.get(3).toString());
                break;
            default:
                break;
        }
    
    }
    
  • 在第四步中,有一个ToastUtil.toast(getActivity(),titleList.get(0).toString());这是博主自己新建的一个Toast工具类,用来给用户提示的。
    public class ToastUtil {
    
        private static Toast mToast;
    
        public static void toast(Context context, String strings) {
            if (mToast == null) {
                mToast = Toast.makeText(context, strings, Toast.LENGTH_SHORT);
            } else {
                mToast.setText(strings);
            }
            mToast.show();
        }
    
    }
  • 另外,为了更好的体验,可以在主程序中添加如下部分
    @Override
    protected void onStart() {
        super.onStart();
        //开始轮播
        banner.startAutoPlay();
    }
    
    @Override
    protected void onStop() {
        super.onStop();
        //结束轮播
        banner.stopAutoPlay();
    }

Banner的整个使用过程就是这样,希望对各位有所帮助。

由于博主文采有限,文章水平也就这样,朋友们请多见谅。


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值