SuperIndicator开源库源码分析
背景:为什么有这个库,在经常开发中,会碰到,显示广告位图片,精彩推荐,及比较好的,希望能直观显示到用户看的。那么SuperIndicator正是这样一个类库。
关于它的一些说明,github已经够详细了,这里不再说明,可以看链接:https://github.com/hejunlin2013/SuperIndicator 或者点击“阅读原文”:
今天主要分析下它的实现思路,分为两块,一块是viewpager相关,一块是point相关
首先看下Viewpager相关,对应代码为
再看一下LoopPagerAdapterWrapper,实际上就是增加了一些功能。
再来看另一部分CircleIndicator,圆点相关,代码如下:
这个开源库比较简单,总结几个要点如下:
关键是处理边缘循环部分逻辑,最后->第一个,取模得到真实位置,第一个->最后,加总count得真实postion
自动轮播,用Handler,post 5s,在该轮播时,进行轮播
圆点对象持有viewpager,根据viewpager的count得到自身个数
viewpager的pageadapter,用一个包装类,可以设置是否边缘循环,及第1个和最后一个是否要缓存起来。
看下1.0.3效果图
第一时间获得博客更新提醒,以及更多android干货,源码分析,欢迎关注我的微信公众号,扫一扫下方二维码或者长按识别二维码,即可关注。
SuperIndicator开源库源码分析相关推荐
- SEAL开源库源码02
SEAL开源库源码02 本篇的最终目的是要分析 seal/modulus.h 文章目录 SEAL开源库源码02 seal/version.h seal/util/hestdparms.h 128-bi ...
- 开源项目源码分析(Kickstarter-iOS )(一)
开源项目源码分析(Kickstarter-iOS )(一) 1.Kickstarter开源项目简介 2. Kickstarter项目结构 2.1 Makefile 文件 2.2 Git submodu ...
- SEAL开源库源码10
SEAL开源库源码10 文章目录 SEAL开源库源码10 seal/evaluator.h Evaluator 类 构造函数,利用 context 来构造 negate_inplace 和 negat ...
- SEAL开源库源码12
SEAL开源库源码12 文章目录 SEAL开源库源码12 5_ckks_basics.cpp example_ckks_basics 函数 6_rotation.cpp example_rotatio ...
- SEAL开源库源码01
SEAL开源库源码01 文章目录 SEAL开源库源码01 seal/util/defines.h 通用的判断函数 将x输出为字符串 字符串的拼接 检查double类型是否是64比特 检查int是否为3 ...
- 《微信小程序-进阶篇》Lin-ui组件库源码分析-列表组件List(一)
大家好,这是小程序系列的第二十篇文章,在这一个阶段,我们的目标是 由简单入手,逐渐的可以较为深入的了解组件化开发,从本文开始,将记录分享lin-ui的源码分析,期望通过对lin-ui源码的学习能加深组 ...
- HEAAN开源库源码(一)
HEAAN开源库源码 文章目录 HEAAN开源库源码 HEAAN.h HEAAN.cpp TimeUtils.h TimeUtils.cpp TestScheme.h TestScheme.cpp S ...
- Android主流三方库源码分析(九、深入理解EventBus源码)
一.EventBus使用流程概念 1.Android事件发布/订阅框架 2.事件传递既可用于Android四大组件间通信 3.EventBus的优点是代码简洁,使用简单,事件发布.订阅充分解耦 4.首 ...
- sigslot库源码分析
言归正传,sigslot是一个用标准C++语法实现的信号与槽机制的函数库,类型和线程安全.提到信号与槽机制,恐怕最容易想到的就是大名鼎鼎的Qt所支持的对象之间通信的模式吧.不过这里的信号与槽虽然在概念 ...
- surprise库源码分析
最近工作上需要使用到协同过滤,来计算相似度,因此根据https://blog.csdn.net/weixin_43849063/article/details/111500236的步骤对surpris ...
最新文章
- MySQL环境配置和入门讲解!
- Javabean学习纪要
- c/c++ 函数、常量、指针和数组的关系梳理
- 前端画面-下拉后滚动
- str转list_数据运算030篇字符串处理str_dec的局限
- emacs php,如何在Emacs中关闭php-indent警告
- 外企面试官最爱提的10个问题
- 【测试点0分析】1009 Product of Polynomials (25 分)
- hive的metatable学习
- git为私有仓库设置密码_真香!在局域网下行云流水般使用git
- phpcmsV9 自定义分页函数与调用 - 不影响后台SQL分页
- 线性代数 【22】 抽象的向量空间
- win32开发(调试)
- 为什么模板函数的声明和实现都放在.h文件中
- java什么叫元素_java-什么是HTTP标头元素?
- 【LeetCode】【数组】题号:*498,对角线遍历
- python图书馆管理系统源代码_python代码实现图书管理系统
- 前后端开发接口文档模板(登录、注册、项目发布与需求发布)
- 【python数据分析】亚太地区的商学院(商务与经济统计案例3-3)数据分析
- macOS上使用aircrack-ng暴力破解Wi-Fi密码
热门文章
- mysql中dint_mysql常用操作——数据库和表的操作1(共2页)
- 图形大小_光伏电池正面图形设计优化
- linux下copy命令c实现,C语言自己实现linux下cp文件复制命令
- 关于如何将DB2中的非空约束删除
- 类的继承与派生的基础学习
- 深刻理解Tensor的概念及其常见的操作_以Pytorch框架为例
- 论文阅读笔记(八)——Ultra-thin MobileNet
- windows操作系统自带的端口TCP转发
- 视频+课件|基于多视图几何方式的三维重建
- CatBoost之算法解析(Kaggle常用模型)