无限滑动控件

无限滑动控件的预期效果是添加有限个View实现无限滑动的效果。
我的实现是通过重写dispatchDraw,对canvas画布进行偏移达到无限滑动的效果。
效果如图:

github地址:https://github.com/BigPig-LittleTail/cyclePager

实现原理

一个View时

蓝色为绘制出的内容
灰色的为布局位置
黑色矩形框是显示的绘制内容
红色的坐标是canvas画布的坐标位置

图1,手指滑动前的屏幕中显示的绘制内容

图2,为了展示的更清楚,手指滑动中,实际上对canvas做的偏移和切割。(超出屏幕的位置实际上不会被绘制,实际上看到的是图3)

图3,手指滑动中的屏幕中显示的绘制内容。

图4,松手后屏幕中显示的绘制内容

两个View时

蓝色为第1个View,绿色为第2个View
灰色的为布局位置
黑色矩形框是显示的绘制内容
红色的坐标是canvas画布的坐标位置

图1,只布局第1个View,滑动前显示的绘制内容

图2,根据滑动方向把第2个View布局进来

图3,松手后,将第2个View绘制出来,移除第一个View

三个View

红色为第0个View,蓝色为第1个View,绿色为第2个View
灰色的为布局位置
黑色矩形框是显示的绘制内容
红色的坐标是canvas画布的坐标位置

图1,滑动前布局3个View,其实出现在屏幕上的显示的绘制内容只有1。

图2,滑动时移动canvas的坐标,实际上显示的绘制内容是黑色矩形框中的内容。

图3,松手后的布局

Android无限滑动控件实现相关推荐

  1. Android双向滑动控件

    Android双向滑动控件 kaxi4it 关注 一 效果图 二 使用方法 由于新版jcenter强制添加组织还要收费貌似,所以改用jitpack了 最新版本号 在你root的gradle中添加引用 ...

  2. Android左右滑动控件实现开关的切换效果

    /**  * 开关控件,通过左右滑动控件实现开关的切换效果 <br>  * 使用时需要设置开关状态监听{@link OnSwitchStateChangeListener} <br& ...

  3. android横向滑动控件,Android学习——HorizontalScollview水平滚动控件

    HorizatalScollView控件只是支持水平滚动,而且它只能包含一个控件,通常是在标签中定义一个 标签并且在标签中android:orientation属性值设置为horization.然后在 ...

  4. Android 自动换行添加控件

    PS:转载请注明出处,谢谢 最近在项目里面有几个需要根据返回的数据来自动添加控件的地方,在网上找了一些,然后加上自己写的一些,都一起整理完,然后给自己做个备注,啦啦啦啦啦啦~~~~ 先贴一张镇楼效果图 ...

  5. Android开源中国客户端学习 (自定义View)左右滑动控件ScrollLayout

    左右滑动的控件我们使用的也是非常多了,但是基本上都是使用的viewpager 等 android基础的控件,那么我们有么有考虑过查看他的源码进行定制呢?当然,如果你自我感觉非常好的话可以自己定制一个, ...

  6. android 光晕动画,Android去掉SrollView、GrdiView、RecycleView、ViewPager等可滑动控件滑动到边缘的光晕效果...

    下面以RecycleView为例,其他可滑动控件也是一样的 在XML中设置: android:id="@+id/rv_recycle_view" android:layout_wi ...

  7. android listview 滑动条显示_第七十六回:Android中UI控件之RecyclerView基础

    各位看官们,大家好,上一回中咱们说的是Android中UI控件之ListView优化的例子,这一回咱们说的例子是UI控件之RecyclerView.闲话休提,言归正转.让我们一起Talk Androi ...

  8. Android果冻效果滑动控件

    类似于iOS有阻尼效果的滑动控件,一般我们比较亲切地称之为果冻控件 比较常见的地方,如微信里[我]的那个面板模块,即使没有再多的选项,也不会很生硬的不允许用户滑动. 微信是的处理方法是让用户滑动,但最 ...

  9. Android考勤日历控件

    工作这么久,第一次在CSDN上写技术博客,望大家多多支持: 本篇博文给大家分享一个考勤日历控件,这里有个需求:要求显示当前月的日期,左右可以切换月份来查看日期.可以通过不同的颜色表示每天的考勤状态: ...

最新文章

  1. (NO.00002)iOS游戏精灵战争雏形(六)
  2. Java 虚拟机总结给面试的你(中)
  3. MATLAB读取HDF格式的SST数据
  4. XMNetworking 网络库的设计与使用
  5. java 将一张图片切割成n个小图片,任意切割一张图片成新图片
  6. HUAWEI nova 青春版闪速快充,让追剧不再断电
  7. 基于MaxCompute的数仓数据质量管理
  8. 如何实现新浪微博功能:关注某个的发布信息,自动点赞和转发
  9. 诗与远方:无题(五十七)
  10. Java中的ASCII码与Unicode码
  11. java httpget 设置参数_java 模拟HTTP doPost请求 设置参数 | 学步园
  12. python的高级特性3:神奇的__call__与返回函数
  13. 尝试搭建Apache+Tomcat负载均衡
  14. HDU 1181.变形课-并查集
  15. BeX5企业快速开发平台-前端快速开发框架
  16. 【python】实战:“唱啥”app后台开发
  17. 在线超市系统-PythonGUI Tkinter 图片界面设计案例
  18. 如何通过VISIO来画网络拓扑图
  19. matlab图片测量尺寸_matlab尺寸测量
  20. 【译】.NET 7 中的性能改进(十一)

热门文章

  1. 抓包工具哪些好,来看这里就够了.....
  2. Egencia smartmix航班排名模型背后的运营研究
  3. 【科研论文】Endnote入门指南
  4. amd显卡测试大风车软件md,肉眼可见的撕裂 AMD将推出FreeSync2 HDR测试工具
  5. DICOM-RT struct转换为nii.gz
  6. 构建技术影响力 5.0
  7. 微信公众号官网平台与微信公众号第三方平台的区别
  8. asp.net强大工作流引擎,learun助力开发升级
  9. 反转二叉树--递归和非递归
  10. Vision.CascadeObjectDetector-VJ算法学习