1.需求分析

小红书登陆页面背景图滚动效果

需求特点

  • 背景无限循环滚动

登陆页面布局分析

功能分析

  • 通过 uiautomatorviewer 分析页面布局,确定其应是通过自定义 FrameLayout 实现
  • 通过清除 App 数据同时断开数据连接再启动该页面,确定背景加载的是本地图片
  • 通过小红书 apk 获取资源文件,确定背景图片为单张图片

2.具体实现

实现效果

实现步骤

  • 自定义 SrcScrollFrameLayout 继承于 FrameLayout ,初始化时 setWillNotDraw(false)  使 onDraw 方法生效
  • 获取背景图片 Bitmap 对象,按 SrcScrollFrameLayout 实际宽度按比例缩放,同时计算需要绘制的背景图 Bitmap 数(绘制多个背景图 Bitmap 的目的:一是为了填满当前 View 高度,二是为了填充滚动时产生的留白)
  • onDraw() 中通过 canvas.drawBitmap(mSrcBitmap, mMatrix, mPaint) 绘制背景图
  • 通过定时任务操作背景图 Bitmap 平移距离后发起重绘,实现滚动效果
  • 当平移距离 ≥ 背景图 Bitmap 高度时,重置平移距离,实现无限滚动视觉效果

实现步骤示意图

2-1 绘制背景图

2-2 实现滚动效果

2-3 实现无限滚动视觉效果

既然竖屏无限滚动已经实现了,同理只要固定高度拉伸宽度将图片填满屏幕,即可实现无限横向滚动效果

切换无限滚动的方向

具体代码查阅 SrcScrollFrameLayout 源码(点击查看)

SrcScrollFrameLayout 功能特点

  1. 将选择的图片按比例缩放填满当前 View 宽度
  2. 背景图片缩放后高度小于当前 View 高度时自动复制黏贴直到占满当前 View 高度,以此来达到无限滚动效果
  3. 可通过自定义属性 speed 调整滚动速度,提供 slowordinaryfast 选项,也可自行填入 int 值,值越大滚动速度越快,建议 1 ≤ speed ≤ 50
  4. 可通过自定义属性 maskLayerColor 设置遮罩层颜色,建议带透明度
  5. 提供 startScrollstopScroll 方法控制开始/停止滚动
  6. 可通过自定义属性 scrollOrientation 设置滚动方向为 上移 左移 ,默认滚动方向为上移

3.最后

  • 源码及 Demo 地址:https://github.com/ziwenL/SrcScrollFrameLayout
  • 如有更好的见解或建议,欢迎留言

Android 实现小红书登陆页面背景图无限滚动效果相关推荐

  1. html怎么制作固定背景,使用CSS制作的页面背景固定和滚动效果

    HTML HTML结构很简单,一个class为.cd-fixed-bg的div元素用于放置固定背景图,一个class为.cd-scrolling-bg的div元素用于滚动的部分.我们可以放置多个.cd ...

  2. Android仿小红书大众点评登录页背景动态效果

    SrcScrollFrameLayout我转载Ziwen Lan的只用于个人记录 Introduction :仿小红书登陆页面背景图无限滚动 FrameLayout 功能特点: 1.将选择的图片按比例 ...

  3. itextsharp php,C#_C#使用iTextSharp设置PDF所有页面背景图功能实例,本文实例讲述了C#使用iTextSharp - phpStudy...

    C#使用iTextSharp设置PDF所有页面背景图功能实例 本文实例讲述了C#使用iTextSharp设置PDF所有页面背景图功能的方法.分享给大家供大家参考.具体如下: 在生成PDF 的时候,虽然 ...

  4. Php点击更换封面,JavaScript_js实现点击图片改变页面背景图的方法,本文实例讲述了js实现点击图 - phpStudy...

    js实现点击图片改变页面背景图的方法 本文实例讲述了js实现点击图片改变页面背景图的方法.分享给大家供大家参考.具体实现方法如下: 点击图片即改变页面的背景图片 希望本文所述对大家的javascrip ...

  5. android actionbar 背景,Android应用开发之定制页面背景及Actionbar overflow menu的背景色...

    本文将带你了解Android应用开发之定制页面背景及Actionbar overflow menu的背景色,希望本文对大家学Android有所帮助 定义theme和style, 注意是actionOv ...

  6. css设置背景图片随滚动缓慢滚动_h5页面背景图很长要有滚动条滑动效果的实现...

    最近做项目过程中,老大提了个很奇葩的要求 背景图铺满页面,他要求有滚动条可以滑动,他给我讲的思路是用js 获取背景图片的高,在获取当前窗口的高,两者比较,当窗口的高小于背景图片的高,把窗口的高设置成背 ...

  7. 如何更换 macOS Mojave 登陆界面背景图?

    相信用着 macOS Mojave 系统的小伙伴们都对下面这张沙漠的壁纸很熟悉了. 这张壁纸作为 macOS Mojave 系统的原始壁纸,既是桌面壁纸,也是开机登陆界面的背景图,看得久了,确实有点腻 ...

  8. Mac 修改开机登陆界面背景图, 替换沙漠背景图

    Mac 修改开机登陆界面背景图, 替换沙漠背景图 本机版本 : macos mojave 10.14.6 之前网上查了一下都说需要替换原本的沙漠图片,我试了一下,根本不需要,下面进入正题. 1.系统偏 ...

  9. android 仿小红书标签,Android 仿小红书图片标签

    TagViewGroup Android 仿小红书图片标签,实现了图片标签的动画,布局,水波纹,编辑等功能,还可以自定义 Tag.视频演示地址 This is a library of tags th ...

  10. php仿小红书,Android仿小红书图片标签

    TagViewGroup Android 仿小红书图片标签,实现了图片标签的动画,布局,水波纹,编辑等功能,还可以自定义 Tag.视频演示地址 Gradle Step 1.Add it in your ...

最新文章

  1. linux驱动内核,Linux内核设备驱动之Linux内核基础笔记整理
  2. Move or commit them before Pull git
  3. c#中用鼠标点击事件实现抠图
  4. python类和实例化
  5. ddos攻击工具_linux下DDoS攻击模拟实战
  6. 调色插件怎么安装_修图调色一键搞定!PS大师级调色插件NikCollection 八合一送你...
  7. Mybatis的生命周期及作用域
  8. 官宣 .NET 6 RC (Release Candidate) 2
  9. pure specifier can only be specified for functions
  10. 在TriCore架构芯片上移植 RT-Thread
  11. 在硬盘留下后门,重装系统都没辙(太太太太太厉害了)
  12. 《软件学报》《计算机学报》《计算机研究与发展》为计算机类三大权威刊物
  13. 小白也能动手搭建属于自己的博客网站
  14. 2012,独立B2C已死!天猫战后观格局
  15. 【C语言进阶】很诡异的编译报错expected declaration or statement at end of input
  16. BIMBase参数化建库软件使用手册
  17. UCL HPC超算平台使用笔记
  18. 计算摄影——风格迁移
  19. mysql8.0以上版本安装出现问题
  20. 计算机stem项目计划书,一篇文章让你读懂STEM!

热门文章

  1. 【CQF Finance Class 3 债券】
  2. 用excel制作双层饼图_Excel做的双层饼图,太漂亮了
  3. 考研英语近义词与反义词·十三
  4. OSChina 周一乱弹 ——东京12G
  5. 重庆计算机应用高级工程师,重庆高级园林工程师职称评审条件
  6. 回复和评论功能的实现
  7. 如何使用云存储以及使用好处
  8. L298N、电机、单片机的线路连接(51、stm32程序)
  9. 用original绘制重叠柱状图
  10. 计算机容斥原理,三集合容斥原理解题技巧