Android常用控件-BannerView(无限轮播图控件)

本文介绍了一款基于Kotlin开发的BannerView组件,该组件支持无限循环轮播、多种页面特效及自定义滑动时长等功能。通过简单的配置即可在项目中实现美观且实用的轮播效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

轮播图控件,封装ViewPager,支持无限循环轮播,支持三种常用页面特效,支持设置指示器,支持自动切换手动滑动和自动滑动的滑动时长,封装Banner的Holder实现更加简单。使用Kotlin开发,在项目中使用,满足大部分Banner相关需求,可以直接使用。

本项目基于MZBannerView进行二次开发,只用于开源交流,如果侵权等问题请及时提醒。

简单预览

使用方法

  1. 在项目根目录的build.gradle文件中添加jitpack仓库

     allprojects {
         repositories {
             maven { url 'https://jitpack.io' }
         }
     }
    复制代码
  2. 在application的build.gradle文件中引入仓库依赖

     dependencies {
          implementation 'com.github.PingerOne:BannerView:1.0.0'
     }
    复制代码
  3. 在xml文件中引用BannerView控件

     <com.fungo.banner.BannerView
         android:id="@+id/bannerView"
         android:layout_width="match_parent"
         android:layout_height="200dp"
         app:bannerAutoLoop="true"
         app:bannerPageMode="cover"
         app:bannerPageScale="0.9"
         app:bannerPageAlpha="0.6"
         app:bannerFarMargin="10dp"
         app:bannerCoverMargin="10dp"
         app:bannerPagePadding="20dp"
         app:indicatorVisible="true"
         app:indicatorAlign="right"
         app:indicatorPaddingLeft="12dp"
         app:indicatorPaddingBottom="12dp"
         app:indicatorPaddingRight="12dp"/>
    复制代码
  4. 在代码中设置数据和适配器

     bannerView.setPages(data, object : BannerHolderCreator<BannerBean, BannerHolder> {
          override fun onCreateBannerHolder(): BannerHolder {
              return BannerHolder()
          }
      })
    复制代码

常用属性

NameFormatDescription
bannerAutoLoopBoolean是否开启自动轮播
bannerPageModeInt页面模式
bannerPageScaleFloat左右页面的缩放比例
bannerPageAlphaFloat左右页面的透明度
bannerFarMarginDimension远离模式下左右页面的外边距
bannerCoverMarginDimension覆盖模式下左右页面的内边距
bannerPagePaddingDimension中间页面距离左右的距离
indicatorVisibleBoolean指示器是否可见
indicatorAlignInt指示器的位置
indicatorPaddingLeftInt指示器距离左侧的距离
indicatorPaddingRightInt指示器距离右侧的边距
indicatorPaddingTopInt指示器距离顶部的边距
indicatorPaddingBottomInt指示器距离底部的边距

参考


项目地址
下载APK

欢迎大家访问我的简书博客GitHub

转载于:https://juejin.im/post/5b66c8abe51d45190c1906d4

现在的APP Banner大多数千篇一律,前几天看到魅族手机上所有魅族自家APP上的Banner效果不错,于是就想着来仿着做一个类似的效果。因此就有了这个库。但是为了使用方便,这个库不仅仅只有仿魅族效果的BannerView使用,还可以当作普通的BannerView使用,还可以当作一个ViewPager 来使用使用很方便,具体使用方法和API 请看后面的示例。 ---  左图为魅族APP上的Banner效果,右图是高仿效果。MZBannerView 有以下功能:1 . 仿魅族BannerView 效果。2 . 当普通Banner 使用3 . 当普通ViewPager 使用。4 . 当普通ViewPager使用(有魅族Banner效果)5 . 仿某视频网站Banner效果。Demo APKgif图片有点模糊,可以扫描下方二维码下载APK体验相关博客ViewPager系列之 仿魅族应用的广告BannerView更新日志v1.1.1 : 增加按住Banner 停止轮播,松开开始自动轮播的功能v1.1.0 : fix 在从网上获取数据后,banner 显示 造成 ANR 的bug(如果在onCreate()中设置资源显示则没问题)v1.1.2 : fix 更改数据之后,调用setPages重新刷新数据会crush的bugv2.0.0 :1,add: 添加仿魅族Banner效果,中间Page覆盖两边。 -- 2,fix 部分bug: 添加OnPageChangeListener 回调 pisition 不对的bug.DependencyAdd it in your root build.gradle at the end of repositories:allprojects {      repositories {           ...           maven { url 'https://jitpack.io' }      } }Step 2. Add the dependencydependencies {          compile 'com.github.pinguo-zhouwei:MZBannerView:v2.0.0' }自定义属性属性名属性意义取值open_mz_mode是否开启魅族模式true 为魅族Banner效果,false 则普通Banner效果canLoop是否轮播true 轮播,false 则为普通ViewPagerindicatorPaddingLeft设置指示器距离左侧的距离单位为 dp 的值indicatorPaddingRight设置指示器距离右侧的距离单位为 dp 的值indicatorAlign设置指示器的位置有三个取值:left 左边,center 剧中显示,right 右侧显示middle_page_cover设置中间Page是否覆盖(真正的魅族Banner效果)true 覆盖,false 无覆盖效果使用方法1 . xml 布局文件2 . activity中代码:mMZBanner = (MZBannerView) view.findViewById(R.id.banner);              // 设置数据         mMZBanner.setPages(list, new MZHolderCreator() {             @Override             public BannerViewHolder createViewHolder() {                 return new BannerViewHolder();             }         });  public static class BannerViewHolder implements MZViewHolder {         private ImageView mImageView;         @Override         public View createView(Context cont
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值