动画类的研究

AOSP Android14 Launcher3——RectFSpringAnim窗口动画类详解 用来驱动应用关闭返回桌面时的窗口动画,通过模拟水平中心、垂直参考点和缩放进度的弹簧运动,计算出每一帧窗口应有的位置和大小,并将这些信息通过回调传递出去,最终应用到真实的窗口 Surface 上,实现了带有物理特性、流畅自然的过渡效果。中处理**应用窗口关闭(返回桌面)**时的动画,模拟窗口从全屏状态自然地、带有速度感地收缩并移动到其在 Launcher 上的对应图标或小部件位置的过程。在阅读源码研究从第三方应用回到桌面的过程中,接触到RectFSpringAnim这个类,确认这个类就是最终动画的实现类。 阅读详情

动画类的研究

动画类使用范围的讨论

       顾名思义,类肯定提供给开发者使用。但是开发者使用这个类做什么呢?最简单的用途,开发游戏动画效果,还有就是编写工具来编辑动画文件,还有其他的用途么?好像没有了。

       用途出来了,那么针对不同的用途,动画类要提供什么样的操作呢?于是,就需要我们刨开动画的本质构成。

动画的构成

       这里的动画构成,主要是针对2D休闲类游戏。经过笔者的一些游戏制作精力及相关的需求整理如下。

动画由层构成,层间除了具有显示顺序关系外,其余属性相互独立。

       层具有多种属性,下面分别罗列

l        私有数据,主要用于程序中,开发者动态标识层。默认为0。

l        层名称,层的另一个标识方法。默认为空。

l        层基本信息,包括

a)        基准点X Y坐标(整数)

b)        显示时间(正整数)

c)        图片绘制方式(正整数)

d)        停止结束标志(0/1)

e)        开始延迟(正整数)

l        层更新信息,包括

a)        桢更新(0/1)

b)        渐变更新(0/1)

c)        图片区域更新(0/1)

d)        运动路径更新(0/1)

e)        图片旋转角度更新(0/1)

f)          图片缩放比例更新(0/1)

l        层停止信息,包括

a)        桢更新结束停止(0/1)

b)        渐变更新结束停止(0/1)

c)        图片区域更新结束停止(0/1)

d)        运动路径更新结束停止(0/1)

e)        图片旋转角度更新结束停止(0/1)

f)          图片缩放比例更新结束停止(0/1)

l        渐变信息,包括

a)        最小透明度(0-250)

b)        最大透明度(10-255)

c)        渐变方向(1.渐显 2.渐隐 3.渐显渐隐 >7 不变的透明度值)

d)        渐变持续时间(>1正整数单位毫秒)

e)        保留值(0)

l        图片区域信息,包括

a)        区域宽度(>0)

b)        区域高度(>0)

c)        区域更新方向(正整数)

d)        区域更新持续时间(>1正整数单位毫秒)

e)        保留值(0)

l        运动路径信息,包括

a)        路径点数(>2)

b)        路径停留标志(0.显示时停留在点间的线上 1显示时停留在点上)

c)        路径方向(1.路径循环 2.路径往回)

d)        路径持续时间(>1正整数单位毫秒)

e)        运动路径<点x坐标,点y坐标,t该点停留时间>

l        图片旋转信息,包括

a)        最小角度(0-355)

b)        最大角度(5-360)

c)        旋转方向(1.小角度过渡到大角度 2.大角度过渡到小角度 3.小大小 >7 不变的角度值)

d)        旋转持续时间(>1正整数单位毫秒)

e)        旋转居中点X Y坐标

f)          保留值(0)

l        图片缩放信息,包括

a)        最小横向缩放尺寸(1-4000)

b)        最大横向缩放尺寸(1-4000)

c)        最竖横向缩放尺寸(1-4000)

d)        最大竖向缩放尺寸(1-4000)

e)        缩放方向(1.小尺寸过渡到大尺寸 2.大尺寸过渡到小尺寸 3.小大小 >7 不变的缩放尺寸值)

f)          缩放持续时间(>1正整数单位毫秒)

g)        缩放居中点X Y坐标

h)        保留值(0)

l        桢信息,层可以由一桢或多桢组成。

a)        图片显示位置X Y坐标(整数)

b)        图片显示时间(正整数)

c)        图片绘制方式(正整数)

d)        图片文件

e)        图片显示区域

f)          桢标示数据

 

层操作整理

综上所述,层操作分为,整层操作及层内操作,整层操作只要针对层,层内操作主要针对层的属性,层内操作又分为属性操作和桢操作。下面分别讨论

整层操作

       整层操作比较简单,主要包括得到层数目,移动层,标示层三部分操作

l        得到层数目,是个比较常用的操作。

l        移动层,主要用于编辑动画的需求

l        标示层,层可以通过顺序索引号标示,也可以通过名称和私有数据标示,特别是移动后的层,具有唯一标识还是相当有用的。

l        添加和删除层。

层属性操作

       层属性操作主要是改变层的属性,层属性的更改都是围绕着具体层进行的,而这个具体层都是通过顺序索引得到的。

       操作分为下面几类:

l        层基本信息操作

l        层更新方式操作

l        层停止方式操作

l        渐变方式操作

l        图片区域方式操作

l        运动路径方式操作

l        图片旋转方式操作

l        图片缩放方式操作

桢属性操作

桢属性操作主要针对层内所使用的显示桢,可以通过桢索引或者桢标示得到相应的桢进行操作。

操作主要有

l        添加和删除桢。

l        得到桢数目。

l        移动桢。

l        设置桢属性。

 

动画的显示

       前面所讲的都是动画的数据构成,动画应用中最多还是动画显示。目前这部分已经编写完成了,这里主要讲讲它的显示更新机制,以便大家对此有所了解。

       动画显示由几部分构成,

显示状态

包括开始显示,停止显示,得到显示状态等状态相关信息。

动态更新

动态更新分为2部分,更新部分及显示部分,

更新部分负责计算并保留当前动画需要更新图片及显示区域的信息。

显示部分负责将更新部分计算的结果进行显示。

显示相关

       一些显示相关的操作,比如判断给定点是否落在动画内等操作。

 

 

 
【Qt开发教程】通用属性动画类QVariantAnimation详解及实战应用:动画的值类型可以是整型、浮点型、颜色、点、矩形等任何 QVariant 类型的数据,可以方便地创建复杂的动画效果,用于增 QVariantAnimation 提供了一种强大而灵活的方式来实现各种属性动画,通过与其他动画类(如 QSequentialAnimationGroup 和 QParallelAnimationGroup)结合,可以创建复杂的动画效果。合理使用多种属性动画、自定义缓动曲线、动画序列、动画并行和自定义更新逻辑,可以提升应用的动态效果和用户体验。在实际应用中,通过优化动画逻辑和避免耗时操作,可以实现流畅和高效的动画效果。注意设置动画的起始值、结束值、持续时间和缓动曲线,确保动画的正确性和高效性。结合其他 Qt 阅读详情

相关推荐

别再乱用标签了!深度解析Unity Addressables标签(Labels)的三种高级用法与性能影响

本文深度解析Unity Addressables标签(Labels)的三种高级用法与性能影响,包括标签组合查询、Pack Together by Label打包策略及运行时性能优化。通过实战代码示例和性能数据对比,帮助开发者实现精细化资源加载控制与包体优化,提升项目效率。

weixin_30500105的博客 509

动画类研究设计

动画类研究设计       本文将结合所有与动画有关的显示图片,文件资源等,讨论动画类的实现。动画类划分       按照需求,动画类分为2大部分,动画数据类及动画显示类。动画数据类负责管理动画数据。而动画显示类负责动画的显示工作。这样划分的好处是,动画数据可以共享,同一个工程中只需要装载一次数据,就可以提供给多个显示调用。如扑克类动画,方片A与红桃A都属于扑克,那么我们可以申请2个扑

Jungler的专栏 1091

ALSA音频开发实战:如何用snd_pcm_avail避免缓冲区溢出(附完整代码)

本文深入探讨了在ALSA音频开发中,如何利用`snd_pcm_avail`函数有效管理环形缓冲区,从而避免音频数据溢出或下溢。通过实战代码示例,详细解析了该函数在播放场景下的核心作用,即实时查询可写入的帧数,并构建了自适应写入循环以实现稳健的流量控制,确保音频流的平滑与稳定。

weixin_29183637的博客 461

Flash动画类有哪些最新发表的毕业论文呢?

一、总体简介Flash动画的相关文献在1999年到2020年内共计1150篇,主要集中在自动化技术、计算机技术、教育、信息与知识传播 等领域,其中期刊论文1118篇、会议论文10篇、专利文献22篇;相关期刊469种,包括中小学信息技术教育、电脑编程技巧与维护、电脑迷等;相关会议10种,包括广西省气象学会2015年学术年会、第十五届全国计算机辅助教育(CBE)学会年会、2011教育技术国际学术会议(...

weixin_42009785的博客 347

红外热成像仪原理及应用

目录什么是红外热成像背景介绍热成像技术原理热成像分类红外热成像和夜视仪之间的区别红外热像仪夜视仪红外照明相机对比红外热像仪都能看透什么如何选择制冷型和非制冷型红外热像仪制冷型红外热像仪非制冷型红外热像仪实例对比成像速度空间分辨率灵敏度光谱滤波同步何如选择合适的红外热像仪像素测温范围和被测物温度分辨率空间分辨率温度稳定性热像仪的距离系数比常见热成像仪关键参数量程视场角 (FOV)红外分辨率热灵敏度(NETD)焦距光谱范围精度内置优化分析NTED(热灵敏度)什么是NETD如何测量NETD?NETD如何影响测量?

zhy295006359的博客 2万+

解决usbisp不识别无法烧录Atmega328P,Arduino不识别问题

如果使用Arduino IDE里面的烧录,可能会遇到一个问题,就是不识别国产这种廉价的USBISP 点击烧录引导程序,会遭遇到找不到USB设备的问题,选哪个都会提示找不到,比如选择USBasp could not find USB device with vid=0x16c0 pid=0x5dc vendor='www.fischl.de' product='USBasp' 因此,我们需要使用到progisp这一个软件的1.72版本 选择好芯片的型号后,调用编译好的HEX文...

arenascat的博客 7437

原生Js封装的动画类

算法用的是Tween类,需要研究的参考这篇文章: http://www.cnblogs.com/cloudgamer/archive/2009/01/06/Tween.html 网页里常用的动画 放大缩小 位置移动 透明度改变 效果预览:http://jsfiddle.net/dtdxrk/WnACG/embedded/result/ 1 <!DOCTYPE ht...

weixin_30477293的博客 172

ETL数据集成案例

一个典型的ETL数据集成案例是将多个来源的数据合并成一个数据集。假设有一个公司,该公司使用一些不同的系统来存储不同部门的数据,例如销售数据存储在一个CRM系统中,财务数据存储在一个ERP系统中,人力资源数据存储在一个HR系统中。为了更好地进行报告和分析,该公司决定将所有这些数据集成到一个数据仓库中。以下是实现这一目标的ETL过程的步骤:提取(Extract):首先,需要从每个系统中提取所需的数据。每个系统可能有不同的数据格式和结构,因此需要编写不同的提取程序或查询来提取数据。

runqu的博客 948

Hanime1Plugin:提升动画观影体验的全方位解决方案

你是否曾在沉浸于精彩动画剧情时,被突然弹出的广告打断观影节奏?是否因为播放器功能简陋而无法精准控制播放进度?又或者在尝试多任务处理时,不得不放弃继续观看喜爱的内容?Hanime1Plugin作为一款专为优化动画观影体验设计的工具,正是为解决这些常见痛点而生。本文将从问题引入、核心价值、实施路径、场景应用到效果验证,全面介绍这款工具如何彻底改变你的在线观影体验。 ## 🔍 问题引入:现代观影的隐

gitblog_00995的博客 540

AutoSAR_BSW高阶 7. Signal Group 信号组

Autosar BSW的高级配置是实现复杂汽车电子系统的关键步骤之一。通过合理配置信号组和使用适当的参数,您可以提高系统性能,确保数据的可靠传输。在本博客中,我们深入探讨了信号组的概念和高级配置参数,并提供了示例代码,希望这些信息能够帮助您更好地理解和应用Autosar BSW的高级配置。如果您在配置过程中遇到任何问题,不妨寻求专业支持,以确保您的汽车电子系统能够顺利运行。Autosar COM 模块是一个广泛应用于汽车行业的关键技术,它使不同的电子控制单元能够有效地通信和协作。

一直在水些技术小文 663

【100%通过率】华为OD机试真题 C++ 实现【水库蓄水问题】【2022.11 Q4 新题】

给定一个长度为 n 的整数数组height。数组的元素表示山的高度,选择两个元素作为水库的边界,求蓄水量的最大值并输出蓄水量最大时的边界下标(蓄水量相同时输出下标较近的)。

MISAYAONE的博客 1万+

[无线互联]pop框架研究的过程

合适的动画效果是提高用户体验最直观的方式,曾经主要是使用的UIKit的动画扩展,还有少量用CoreAnimation实现。现在Facebook开源了POP,我们又多了一种强大好用的选择。与CoreAnimation,pop框架的api用法相似,而且提供了更多方便生动的动画效果,主要是四...

179

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

cocos2d-x初探学习笔记(22)--动画类

小满(bill man)个人原创,欢迎转载,转载请注明地址,小满(bill man)的专栏地址http://blog.youkuaiyun.com/bill_man 上一篇主要讲的是精灵类,和精灵类经常配合的就是动画类,动画类也有非常多的特性和应用。 建立动画帧集合,即导入贴图文件.png和导入贴图文件的配置文件.plist,如下例所示 首先是获得cache,然后是通过addSprite

手机游戏开发学习笔记 1万+

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

哈哈,我也有自己的动画类了,各种缓动哦

最近的项目上很可能会用上动画,于是小小地研究了下,主要是参考了cloudgamer 大师的Tween算法及缓动效果一文,然后再简单地进行了一下封装: View Code /** * obj: DOM id 或 DOM 对象 * prop: 样式属性,如left、width、opacity * v1: 初始值 * v2: 最终值 * obj: { duration: 动画时长(毫秒), t...

weixin_30378623的博客 81

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

软件测试工程师在职研究生,在职研究生工科

想必大家也都知道,工科一般都是男生们所学的专业,主要是指如机械、建筑、水利、汽车等研究应用技术和工艺的学问。工科是应用数学、物理学、化学等基础科学的原理,结合生产实践所积累的技术经验而发展起来的学科。下面为大家介绍一下,在职研究生工科类热门专业,供大家参考。1、软件工程软件工程专业,是用专业技术和工具来创建品质完整的软件系统。不断总结工作核心,定期升级先进设备,其内容包括专门的实验室数据库、网络项...

weixin_42306688的博客 608

python开发游戏引擎_Python游戏引擎开发(五):动画研究

接下来让我们来研究下动画,其实这个动画就是一个Sprite+Bitmap的结合体。不知道什么是Sprite和Bitmap就看Python游戏引擎开发系列中的文章。动画的原理一般而言,我们的动画是用的这样一种图片:播放动画的时候,像播放电影一样,这张图就是胶卷。我们可以弄一个放映机,放映机的镜头大小就是每个动作小图的大小。如果我们的胶卷不停地移动,那么就会连成动画,如下图:如何实现这个效果呢?我们在...

weixin_39689870的博客 238

Android游戏开发研究帧动画实现

 1.动画的原则框架        帧的动画帧的动画顾名思义,画就是帧动画。 帧动画和我们小时候看的动画片的原理是一样的,在同样区域高速切换图片给人们呈现一种视觉的假象感觉像是在播放动画,事实上只是是N张图片在一帧一帧的切换罢了。对摄像头不清楚的请看Android研究之游戏开发摄像头更新        如图所看到的:人物行走动画的实现方式, 4帧行走动画在播放区域 一帧一...

weixin_34150830的博客 180

书生教你cocos2d-x-保卫萝卜(一)

书生教你cocos2d-x-保卫萝卜(一)原本是打算把整个游戏写完才整理教程的,可是细想起来,全部写完才发可能会耽搁不少时间,并且开发过程中的中间代码大家就看不到了。因为本来这个教程的定位就是帮助刚入门的朋友学习如何做游戏,比起代码框架以及cocos2d-x Api,教大家一些开发游戏的思路,以及写代码的方式反而更加重要,如果只是介绍游戏代码,等这个游戏做完后,我自己优化代码...

weixin_34217711的博客 1092

iOS 自定义presentViewController 动画时 出现的问题

项目中用到了抽屉视图,抽屉视图 推出新视图控制器的时候需要使用presentingViewController,新推出来的视图相对独立,有自己的一套内容,现在问题来了,再 这个新视图上 再 presentingViewController 的时候就会出现问题。因为返回的时候 直接返回到了底层控制器,而且不完全是底层控制器。就像A-->B--C,我们在 C上面 dismiss 的时候, 直接 d

wbxiaowangzi的博客 1343

CCACTION

刚开始研究一下Cocos2D的相关东西!太多的不懂啊!毕竟是我接触的第一个游戏框架!它确实吸引了我!喜欢啊!就钻研吧!不懂不要紧,我可以学!总会弄懂的!加油!CCAction 类是Cocos2d中处理动画的类。动画类很多,首先上一个CCAction 类的结构图吧!CCAction 结构动画相关类是不是太庞大了!其实没什么:CCAction:所有动画类的父类。CCActionInterval:区间动

过期的码农 786

固定时间锁定app不能打开_早教APP防沉迷,设限用时段就OK了?实测部分解锁过于简单...

南都讯 极光大数据统计结果显示,幼儿早教APP行业在过去一年呈现上升趋势,用户规模接近1.25亿,在人均安装数量上也有所增长。与此同时,早教APP用户的年轻化趋势非常显著,26至35岁的用户接近八成。“很多家长自己懒,把手机丢给小孩来解放自己的时间。”3月4日,全国政协委员、网易首席执行官丁磊的观点引起热议。南都NDX实验室曾发起热点站队投票,超过九成网友表示赞同该观点。有家长表示,道理大家都明白...

weixin_32224199的博客 5219

【Unity知识速递】第7期 Unity 6.6 深度解析:WebGPU 正式版与 WebAssembly64,Web 游戏的内存革命

如何启用 Wasm64?需要注意的是,Wasm64 需要浏览器支持 Memory64 提案,目前主流浏览器的最新版本都已支持。一句话总结: Unity 6.6 用 WebGPU 转正、Wasm64 16GB 内存和渐进式加载三连击,将 Web 游戏的体验天花板又往上推了一大截——Web 平台不再是"妥协版",正在成为真正的一等公民。Unity 6.6 新增了 WebAssembly64(Wasm64) 构建选项,这可能是本次更新中对 Web 游戏开发者影响最大的一项升级。

crystal_WJT的博客 429
上一篇: 客户端平台工作整理及总结
下一篇: 周球报(07-6-2)
feng
博客等级 码龄27年 16粉丝 17原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值