
引导界面滑动导航 + 大于等于1页时无限轮播 + 各种切换动画轮播效果
发布日期:2021-05-16 19:08:28
浏览次数:11
分类:精选文章
本文共 3631 字,大约阅读时间需要 12 分钟。
BGABanner 文档
BGABanner 是一个高效的 Android 广告轮播控制器模块,支持多种自定义设置与功能,适用于引导界面、广告展示等场景。以下将从功能介绍、使用说明及自定义属性Explanation进行详细说明。
功能介绍
BGABanner 提供丰富的功能性特性,主要包括:
引导界面导航效果
支持通过自定义动画实现页面切换,提升用户体验。动态数据配置
方便通过服务端返回的数据动态设置广告条总页数,支持无限循环轮播。智能轮播控制
- 当数据量≥1页时,可设置无限循环自动轮播。
- 支持手指按下暂停轮播,随后释放后自动恢复轮播。
高度可定制化
- 指示器可定义位置(top、bottom、left、right、center_horizontal等)。
- 广告文案与指示器位置可自定义,支持图片或数字指示器。
多页面并发滚动
支持多个 ViewPager 实现同步滚动,适合多页面联动展示。事件监听
提供交接点,支持监听单页点击事件。网络数据加载优化
支持设置占位图,避免因数据加载延迟导致全空白展示。效果图与示例 APK
BGABanner 的效果图展示了其多样化功能表现,示例 APK 可在相关文档中下载体验。
常见问题解答
Fresco 图片加载
综上,建议参考标准 Fresco 计算方法进行图片加载,对于常见的错误情况。自定义布局
对于需要定制各页面视图的开发者,参考布局文件模板进行设置。使用说明
要使用 BGABanner ,需要遵循以下步骤:
添加 Gradle 依赖
在项目根目录下的 build.gradle 文件中添加以下依赖项:implementation 'com.android.support:support-v4:latestVersion'implementation 'cn.bingoogolapple:bga-banner:latestVersion@aar'
注意:latestVersion
为最新版本号,请根据项目需求自行替换。
布局文件中添加 BGABanner
在需要展示 BGABanner 的布局 XML 文件中添加相关配置:配置数据源
BGABanner 支持三种数据源配置方式:方式一:通过 Adapter 配置数据源
适用于网络图片及无限轮播场景,代码示例如下:mContentBanner.setAdapter(new BGABanner.Adapter
() { @Override public void fillBannerItem(BGABanner banner, ImageView itemView, String model, int position) { Glide.with(MainActivity.this) .load(model) .placeholder(R.drawable.holder) .error(R.drawable.holder) .centerCrop() .dontAnimate() .into(itemView); }});mContentBanner.setData(Arrays.asList("路径1", "路径2", "路径3"), Arrays.asList("文案1", "文案2", "文案3")); 方式二:自定义页面视图集合
适用于需要自定义布局的引导页面:List
views = new ArrayList<>();views.add(View.inflate(context, R.layout.layout_guide_one, null));views.add(View.inflate(context, R.layout.layout_guide_two, null));views.add(View.inflate(context, R.layout.layout_guide_three, null));mContentBanner.setData(views); 方式三:通过图片资源 ID 配置数据源
适用于纯图片展示场景:BGALocalImageSize localImageSize = new BGALocalImageSize(720, 1280, 320, 640);mContentBanner.setData(localImageSize, ImageView.ScaleType.CENTER_CROP, R.drawable.uoko_guide_background_1, R.drawable.uoko_guide_background_2, R.drawable.uoko_guide_background_3);
监听单击事件
通过 Delegate 配置点击事件:mContentBanner.setDelegate(new BGABanner.Delegate() { @Override public void onBannerItemClick(BGABanner banner, ImageView itemView, String model, int position) { Toast.makeText(banner.getContext(), "点击了" + position, Toast.LENGTH_SHORT).show(); }});
配置引导按钮
设置进入按钮和跳过按钮,代码示例如下:mContentBanner.setEnterSkipViewIdAndDelegate(R.id.btn_guide_enter, R.id.tv_guide_skip, new BGABanner.GuideDelegate() { @Override public void onClickEnterOrSkip() { startActivity(new Intent(GuideActivity.this, MainActivity.class)); finish(); }});
自定义属性说明
BGABanner 提供丰富的自定义属性,主要涵盖以下几个方面:
指示点容器背景颜色
设置banner_pointContainerBackground
属性,默认使用透明色。指示点背景图像
通过banner_pointDrawable
设置指示点的外观。指示点布局参数
- 左右内间距:
banner_pointContainerLeftRightPadding
。 - 上下外间距:
banner_pointTopBottomMargin
。 - 左右外间距:
banner_pointLeftRightMargin
。
指示器位置设置
支持banner_indicatorGravity
,可设置顶部、底部、左侧、右侧、居中等位置。自动轮播设置
- 是否启用自动轮播:
banner_pointAutoPlayAble
。 - 轮播间隔时间:
banner_pointAutoPlayInterval
,默认值策略可自行调整。 - 页面切换动画效果:
banner_transitionEffect
,支持多种动画效果。
文案样式设置
- 提示文案颜色:
banner_tipTextColor
。 - 提示文案大小:
banner_tipTextSize
。
占位图设置
- 设置加载中占位图:
banner_placeholderDrawable
。
指示器类型
- 是否是数字指示器:
banner_isNumberIndicator
。 - 数字指示器颜色:
banner_numberIndicatorTextColor
。 - 数字指示器大小:
banner_numberIndicatorTextSize
。 - 数字指示器背景:
banner_numberIndicatorBackground
。
一页展示设置
- 是否显示指示器:
banner_isNeedShowIndicatorOnOnlyOnePage
,默认值为 false。
UI容量设置
- 内容底部间距:
banner_contentBottomMargin
。 - 宽高比例:
banner_aspectRatio
,可根据需求自定义。
代码是最好的老师
更多功能细节及使用实例,建议参考项目文档或开发者GitHub仓库:BGA-Banner 项目文档。
作者地址
作者信息请参考项目仓库中的相关信息。
发表评论
最新留言
第一次来,支持一个
[***.219.124.196]2025年05月01日 20时11分23秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
网络+图片加载框架(英文版)
2019-03-14
扣非净利润连续三年亏损,四维图新如何熬过“转型阵痛期”?
2019-03-14
C++/C (&~)运算和(&)运算
2019-03-14
前台报Invalid Host/Origin Header错误
2019-03-14
IE浏览器中input的placeholder不显示
2019-03-14
【JavaScript高级篇】ES6
2019-03-14
IDEA配置@Autowired不提示错误
2019-03-14
【CSP - S T1】格雷码
2019-03-14
如何使用IBM SPSS Statistics统计两个变量的交叉频率分布
2019-03-14
openssl源码分析之状态机(1.1.1+)
2019-03-14
Python imageio方法示例
2019-03-14
Possible missing firmware
2019-03-14
算法的学习方式
2019-03-14
JAVA BigInteger和BigDecimal类常用方式
2019-03-14
深度学习框架 各种模型下载集合 -- models list
2019-03-14
双层卷积神经网络--tf
2019-03-14
six.move 的作用
2019-03-14
常用快捷键等
2019-03-14