热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

android补间动画回弹,Principle动画的基本逻辑

1.Principle中对象的四个交互属性物件的交互属性,包括4个状态,横轴纵轴都可以调节。如图:Static(静止的,静态

1. Principle中对象的四个交互属性

物件的交互属性,包括4个状态,横轴纵轴都可以调节。如图:

1c242a4e0dbef0e1b9074aae496d76d7.png

Static(静止的,静态的):这个是所有物件的默认状态,这个物件是不能被移动的。

Drag(拖动):例如做悬浮窗

Scroll(滚动):我们看到的大部分页面都是Scroll组件,例如瀑布流的页面,有了scroll才有了我们“刷”手机的的动作。

Page(翻页):这个概念不是很好理解,暂且理解成翻页吧,有了这个交互的概念,我们可以容易的做到下面的效果:

309576dde66a5e8e45262a0bab65e276.png

2. Principle动画触发条件

讲在前面,点击事件的逻辑分析,我们在PC上使用鼠标时,鼠标的一个点击会被分解成多个动作,

①鼠标按下

②鼠标抬起,

这样完成了一次鼠标点击的动作,除此之外还有

③鼠标移动,

④在3Dtouch中还有用力按压,增加了压力感应;

鼠标悬浮在某物体上方,(移动端不存在)

鼠标移出某物体上方,(移动端不存在)

以上,多个动作的组合就形成了多种交互方式,也就是我们要学习的动画触发条件。

Principle将所有的动画触发条件都集合到了⚡️闪电按钮中:

2efdee994f0c74f70c537c5cd57981bd.png

Principle的强大也表现在这里,这样的设计可以让系统做到:用户在同一个控件上执行不同的操作后,出现不同的动画效果或跳转到不同的页面。

下面我们来讲解一下每个按钮的意思,字面可以理解的我就不解释了。

1. Tap(点击):①鼠标按下;②鼠标抬起;

2. Long Press(长按):交互代码:① ① ②  😆能理解把

3. Scroll Begin(滚动开始):①按下;③移动;

4. Scroll Release(滚动释放):③移动;②抬起;

5. Scroll End(滚动结束):这里要区别一下4.滚动释放,这个滚动是物件滚动完毕,不是操作的结束,例如我们快速滚动一个页面,松手后,页面还会继续滑动,页面结束后才会触发的事件。

6. Drag Begin(开始拖拽):①按下 ③移动,这个跟3.滚动开始是一个交互动作,区别就在于交互动作施加的对象上了。对象是Drag属性就适用Drag,是Scroll就是Scroll。

7. Drag End(拖拽结束):③移动 ②抬起。同样区别于4.滚动释放

8. Touch Down(按下):①按下,使用场景:例如按下某个按钮后,按钮的样式变成被按下样式。

03146cd82d500bae46eafa609570aae0.png

9. Touch Up(抬起):③抬起,使用场景同上,按钮按下后松手,显示一个回弹样式。

10. Hover Inside(鼠标在某图层内)

11. Hover Outside(鼠标在某图层外)

个人觉得上面两个触发条件并不适用移动端的交互,应用的时候大家也可以使用

12. Auto(自动):这个命令相当于在某个物件(图层)上写了自动执行的脚本,配合时间轴的使用,可以完成倒计时类的功能,是一个常用的触发条件。

3. 动画的分解

我们平时看到的绝大部分动画都是可以分解成一系列简单动画的。

动作包括:

出现

消失

位移(priciple只有两个轴,要三维动画的同学可以借助一些阴影变化去完成自己的创意)

旋转(只有两个轴,要实现三维的旋转很难,可以借助变形效果来实现,但是很难像AE那样天生就带三轴那么容易操作)

变形

缩放

透明度变化

阴影变化

具体实现以上动作我们可以调节以下的参数来完成那些关键动作。

6e4dd933a165a8d3d2466b032bcd85c6.png

这里补充一下,Principle的补间动画是基于图层名称一样的条件下,两个画板间在跳转时,只有同样名称的图层才会实现补间动画!

A画板向B画板跳转时,A画板中独有的图层会做消失动作,B画板中独有的图层会做出现动作,并且都是瞬时动作。

分享到这里,掌握之前所有的知识点,我们其实可以完成我们所有想要的效果了

4. 符合现实物理世界的动画

b993184ead2f5b7bb7c7ab14cb05440a.png

节奏的不同

节奏的不同体现在速度的不同,看看下面这个曲线,就是调节速度的曲线,曲线的斜率代表物体运动的速度。

db05087660df075a99f24fd450956904.png

Principle自带了一些运动速度曲线供我们使用,我们也可以根据自己的需求去调节斜率。

物理世界中的运动很多带有加速度,我们尽量调节的我们的图层在运动过程中符合人们平时的认知世界,

例如一个弹跳动作,在最高点的速度应该为0,在最低点的速度应该最大,过程中的应该是一个匀加速运动。

一个物体的从移动到停止,最好也是速度慢慢减到0,这样会让我们的动画变得很真实。

今天的分享包括交互动作的讲解和动画制作的理论,希望对大家有所帮助。



推荐阅读
  • 本文介绍如何在 Android 中通过代码模拟用户的点击和滑动操作,包括参数说明、事件生成及处理逻辑。详细解析了视图(View)对象、坐标偏移量以及不同类型的滑动方式。 ... [详细]
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • Android 渐变圆环加载控件实现
    本文介绍了如何在 Android 中创建一个自定义的渐变圆环加载控件,该控件已在多个知名应用中使用。我们将详细探讨其工作原理和实现方法。 ... [详细]
  • 本文介绍如何使用布局文件在Android应用中排列多行TextView和Button,使其占据屏幕的特定比例,并提供示例代码以帮助理解和实现。 ... [详细]
  • 深入解析Android自定义View面试题
    本文探讨了Android Launcher开发中自定义View的重要性,并通过一道经典的面试题,帮助开发者更好地理解自定义View的实现细节。文章不仅涵盖了基础知识,还提供了实际操作建议。 ... [详细]
  • Explore how Matterverse is redefining the metaverse experience, creating immersive and meaningful virtual environments that foster genuine connections and economic opportunities. ... [详细]
  • Explore a common issue encountered when implementing an OAuth 1.0a API, specifically the inability to encode null objects and how to resolve it. ... [详细]
  • 使用 Azure Service Principal 和 Microsoft Graph API 获取 AAD 用户列表
    本文介绍了一段通用代码示例,该代码不仅能够操作 Azure Active Directory (AAD),还可以通过 Azure Service Principal 的授权访问和管理 Azure 订阅资源。Azure 的架构可以分为两个层级:AAD 和 Subscription。 ... [详细]
  • 本文深入探讨了 Java 中的 Serializable 接口,解释了其实现机制、用途及注意事项,帮助开发者更好地理解和使用序列化功能。 ... [详细]
  • 本文详细介绍了Java中org.w3c.dom.Text类的splitText()方法,通过多个代码示例展示了其实际应用。该方法用于将文本节点在指定位置拆分为两个节点,并保持在文档树中。 ... [详细]
  • 本文详细介绍了Java中org.neo4j.helpers.collection.Iterators.single()方法的功能、使用场景及代码示例,帮助开发者更好地理解和应用该方法。 ... [详细]
  • 本文介绍了如何使用 Spring Boot DevTools 实现应用程序在开发过程中自动重启。这一特性显著提高了开发效率,特别是在集成开发环境(IDE)中工作时,能够提供快速的反馈循环。默认情况下,DevTools 会监控类路径上的文件变化,并根据需要触发应用重启。 ... [详细]
  • 前言--页数多了以后需要指定到某一页(只做了功能,样式没有细调)html ... [详细]
  • DNN Community 和 Professional 版本的主要差异
    本文详细解析了 DotNetNuke (DNN) 的两种主要版本:Community 和 Professional。通过对比两者的功能和附加组件,帮助用户选择最适合其需求的版本。 ... [详细]
  • 本文详细介绍了如何构建一个高效的UI管理系统,集中处理UI页面的打开、关闭、层级管理和页面跳转等问题。通过UIManager统一管理外部切换逻辑,实现功能逻辑分散化和代码复用,支持多人协作开发。 ... [详细]
author-avatar
你好2502898737
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有