parallax(视差)效果源码分析

CollapsingToolbarLayout 深度解析:滚动协同机制与实战避坑指南 CollapsingToolbarLayout 并非简单的折叠工具栏,而是 Android CoordinatorLayout 生态中实现滚动协同的核心组件。其本质是 AppBarLayout 与 CoordinatorLayout 共同构建的滚动状态翻译器,通过 Behavior 调度链路将用户滑动位移转化为 Toolbar 高度、标题缩放、状态栏渐变等连续视觉参数。理解其依赖的嵌套滚动协议(NestedScrollingChild)、app:layout_scrollFlags 位掩码逻辑、以及 col 阅读详情

转载请标明出处:

http://blog.youkuaiyun.com/coder_nice/article/details/45311715

视差概念

可能很多人不知道parallax的概念,那就先上一张动态图来看看效果。

视差效果图

有了这张图,大家就应该明白了parallax视差的概念,google paly有这个效果。
相信很多人在看到效果图之后,就想立刻得到链接,好人做到底。
github地址

最初的想法

最初先接到设计师要求的这个效果的时候,我自己先仔细的想了一下,我原本打算用一个FramLayout中包含两层view,下层就是随着滑动出现视差效果的parallax view(其实是滑动速度比较慢),上层就是普通的view层,随着手势的滑动而滑动(跟手势滑动速度一致),然后把上层的滑动速度传递给下层的parallax view,然后把速度值改小一些就好了。可能这也是大多人的想法。
在接触到github上这个开源项目之后,我看了看代码发现不是这样的,远远比这要简单。

源码分析

这里只做最常用的ParallaxScrollView 具有视差效果的 ScrollView的解析,先来看代码。
ParallaxScrollView 源码

public class ParallaxScrollView extends ScrollView {
   
   

    private static final int DEFAULT_PARALLAX_VIEWS = 1;
    private static final float DEFAULT_INNER_PARALLAX_FACTOR = 1.9F;
    private static final float DEFAULT_PARALLAX_FACTOR = 1.9F;
    private static final float DEFAULT_ALPHA_FACTOR = -1F;
    private int numOfParallaxViews = DEFAULT_PARALLAX_VIEWS;
    private float innerParallaxFactor = DEFAULT_PARALLAX_FACTOR;
    private float parallaxFactor = DEFAULT_PARALLAX_FACTOR;
    private float alphaFactor = DEFAULT_ALPHA_FACTOR;
    private ArrayList<ParallaxedView> parallaxedViews = new ArrayList<ParallaxedView>();

    public ParallaxScrollView(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
        init(context, attrs);
    }

    public ParallaxScrollView(Context context, AttributeSet attrs) {
        super(context, attrs);
        init(context, attrs);
    }

    public ParallaxScrollView(Context context) {
        <
iOS视差滚动效果演示项目:Parallax in Cells 在数字界面设计中,Parallax效果是一种创造深度感和动态感的视差滚动技术,它通过模拟近物快速移动而远物缓慢移动的视觉现象,增强了用户与界面的交互体验。这种效果不仅让我们的眼睛和大脑相信我们看到的场景具有三维空间感,而且还能够引导用户的注意力,提升界面的动态美学。1.1 Parallax效果的含义与视觉原理在iOS开发中,UITableViewCell是用于构建表格视图的数据单元格的类。子类化UITableViewCell允许开发者创建自定义单元格,从而提供更丰富的交互和视觉效果。 阅读详情

相关推荐

parallax视差立体场景动画效果.zip

parallax视差立体场景动画效果是一款jquery.parallax.js结合css3实现的视差滚动立体场景动画效果代码。

ParallaxView:带有视差视图的项目

视差视图 带有视差视图的项目

Parallax:你练习视差效果

视差动画库 学习和练习视差效果的材料

Parallax.js|强大的javascript视觉差特效引擎

Parallax.js是一款功能非常强大的javascript视觉差特效引擎插件。通过这个视觉差插件可以制作出非常炫酷的视觉差特效。它可以检测智能设备的方向。你可以将它作为jQuery插件来使用,也可以以纯JS的方式来使用。

全志DRM框架下LVDS双屏异显配置实战

本文详细介绍了在全志DRM框架下配置LVDS双屏异显的实战经验。涵盖硬件连接、内核配置、设备树修改、背光控制及U-Boot适配等关键步骤,重点解析屏参转换技巧与双屏route配置,帮助开发者解决工业控制台等多屏应用中的显示适配问题,提升开发效率。

rnn9storyteller的博客 813

【软考高项】五十一、常见必会的几种进度网络图(单代号、双代号、七格图、横道图)

软考高项计算题进度网络图画图介绍

有莘不破的博客 3万+

Ubuntu服务器通过IPV6端口转发搭建幻兽帕鲁私服实战

本文详细介绍了在Ubuntu服务器上通过IPV6端口转发搭建幻兽帕鲁私服的完整教程。针对只有公网IPV6地址的服务器环境,提供了从硬件检查、端口转发工具配置到游戏服务器安装的全流程解决方案,帮助玩家轻松实现多人联机游戏体验。

weixin_30652491的博客 490

【初阶】手把手教你轻松上手Denodo | 连接数据库并创建基本视图 (二)

在本教程的第二部分,我们将涵盖:连接到数据库,与创建基本视图。

Denodo的博客 1106

计算机组成原理(第三版)唐朔飞-第三章系统总线-课后习题

计算机组成原理(第三版)唐朔飞-第三章系统总线-课后习题

weixin_45735391的博客 6万+

基于STM32设计的老人摔倒检测报警系统【升级版】(235)

在 `235 基于STM32设计的老人摔倒检测报警系统(OneNet+MQTT)` 项目基础上增加了心率、血氧、体温测量3个功能。

1511

A Macro- and Micro-Hierarchical Transfer Learning Frameworkfor Cross-Domain Fake News Detection

近年来,社交媒体上假新闻的快速和广泛传播对人们的日常生活构成了越来越大的威胁[6, 14, 19]。为了有效打击假新闻,自动检测假新闻变得至关重要[39]。新闻内容[11, 16, 20, 27]和用户互动(即用户互动)[1, 24, 34]。基于这些类型的数据,提出了单领域假新闻检测,它从新闻文章、用户互动或两者中提取有效特征,以识别单个新闻领域内新闻的真实性(即新闻是真是假)(例如,政治新闻或娱乐新闻)。

qq_52053775的博客 155

嵌入式视频应用开发者必读:嵌入式Linux+FFmpeg硬件编解码实战指南

在嵌入式Linux上,FFmpeg支持多种硬件加速API,比如VAAPI、VDPAU、CUDA,以及针对特定平台的专用接口(如NVIDIA的NVENC、Intel的QSV、ARM的Mali)。FFmpeg的硬件解码通过-hwaccel参数启用,咱们以常见的H.264和HEVC(H.265)格式为例,展示如何用VAAPI和V4L2实现高效解码。: FFmpeg硬件加速需要额外的库,比如libva(VAAPI)、libv4l2(V4L2)或libnvcodec(CUDA)。

大模型大数据攻城狮的专栏 2204

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

上一篇: Android获取浏览器User Agent
下一篇: Google推荐的图片加载库Glide介绍
coder_nice
博客等级 码龄12年 33粉丝 23原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值