android-banner项目的使用

文章概述:

本篇文章记录开源的Banner库:android-banner 的使用。android-banner实现了一般banner循环轮播的效果,一页只显示一张图片,也可以一页显示一张图和相邻两个图片的一部分,此项目仅仅是banner展示图片,没有多余的诸如指示器、页面切换动画等效果代码,详见效果图和案例代码。

项目地址:https://github.com/cnlius/android-banner

overview

效果图

usage

Gradle
repositories {
    maven { url 'https://jitpack.io' }
}

dependencies {
    compile 'com.github.cnlius:android-banner:0.0.2'
}
ProGuard
-keep class com.lw.banner.** {*;}
Layout
<com.lw.banner.Banner
    android:id="@+id/banner"
    android:layout_width="match_parent"
    android:layout_height="160dp" />

xml中可设置的一些属性

属性名称属性值类型作用
delayTimeinteger循环轮播时间间隔
scrollDurationintegerbanner滚动过程持续时间
isAutoPlayboolean是否自动轮播
scrollablebooleanbanner是否可以手动滑动
pageMargindimensionbanner页面之间的间隔
pageLimitintegerbanner预加载页面数
leftPageWidthdimension当前页面左侧页面可以显示的宽度
rightPageWidthdimension当前页面右侧页面可以显示的宽度
emptyImagereferencebanner为空时的占位图片资源引用

案例:xml中设置循环轮播时间间隔

<com.lw.banner.Banner
    android:id="@+id/banner"
    android:layout_width="match_parent"
    android:layout_height="160dp"
    app:delayTime="1000"/>
Code
List<String> urls=getUrls();
banner.setImages(urls)
        .setImageLoader(new GlideImageLoader())
        .init();       

代码中可以配置的一些属性:

banner.setImages(Arrays.asList(imgRes)) //设置图片资源
        //.setImageLoader(new FrescoImageLoader()) // 设置fresco图片加载器
        .setImageLoader(new GlideImageLoader()) //设置Glide图片加载器
        //.setPageTransformer(true, new PageScaleYTransformer()) //页面切换动画
        .setOnItemClickListener(new Banner.OnItemClickListener() {
            @Override
            public void callBack(int position) {
                Toast.makeText(MainActivity.this, "position=" + position, Toast.LENGTH_SHORT).show();
            }
        }) //设置banner点击监听
        //.setScrollable(false) // 禁用banner手动滑动
        //.setDelayTime(1000) // 循环轮播时间间隔
        //.setPageLimit(4) // 设置预加载页面数量
        //.setPageMargin(20) // banner页面之间的间隔
        //.setRightPageWidth(50) // 当前页面右侧页面可以显示的宽度
        //.setLeftPageWidth(50) // 当前页面左侧页面可以显示的宽度
        //.setEmptyImageRes(R.mipmap.no_banner) // banner为空时占位图
        //.setEmptyImageScaleType(ImageView.ScaleType.FIT_CENTER) // 占位图的缩放类型,默认FIT_XY
        .isAutoPlay(true) // 设置自动循环轮播
        .init();
// 拿到占位图ImageView对象
ImageView emptyView = mBinding.banner2.getEmptyView();
emptyView.setImageResource(R.mipmap.mn_01);
// 拿到BannerViewPager对象
BannerViewPager bannerViewPager = mBinding.banner2.getBannerViewPager();      

生命周期中控制循环轮播的周期

@Override
protected void onStart() {
    super.onStart();
    //开始轮播
    banner.startAutoPlay();
}
@Override
protected void onStop() {
    super.onStop();
    //结束轮播
    banner.stopAutoPlay();
}

参考

https://github.com/youth5201314/banner

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值