- 1、本文档共17页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
动画技术总结概要1
动画技术知识点Android 平台提供了一套完整的动画框架,使得开发者可以用它来开发各种动画效果。一类是 Tween 动画,即通过对场景里的对象不断做图像变换 ( 平移、缩放、旋转 ) 产生动画效果;第二类是 Frame 动画;3.0后引入的Property Animation。Animation动画框架Android 动画就是通过ParentView来不断调整ChildView的画布坐标系来实现的,动画的绘制交给父 View 去处理而不是让子 View 本身去绘制。Animation 和 Transformation是实现动画的主要的类,用户可以定义自己的动画类,只需要继承 Animation 类,然后重载applyTransformation这个函数。对动画来说其行为主要靠差值点来决定的,比如,我们想开始动画是逐渐加快的或者逐渐变慢的,或者先快后慢的,或者是匀速的,这些功能的实现主要是靠差值函数来实现的,Android 提供了一个 Interpolator 的基类,你要实现什么样的速度可以重载其函数getInterpolation,在 Animation 的getTransformation中生成差值点时,会用到这个函数。Property AnimationView Animation只能支持简单的缩放、平移、旋转、透明度基本的动画,有一定的局限性。比如:颜色的切换动画;3D旋转动画;当动画停止时,View的位置就是当前的位置;这些View Animation都无法做到。这就是Property Animation产生的原因。1.ValueAnimatorValueAnimator是整个属性动画框架的核心类,动画的驱动就是在此类中实现的。属性动画逐帧更新都是由handler不断发生消息来实现的。2.ObjectAnimator?ObjectAnimator是通过传递进来一个对象,以及对象的属性名称,在anim.start()执行过程中不断更改对象的属性值,来实现动画效果的。3.传入多个属性值的方法ValueAnimator要传入多个属性值有这几种方法1.Multiple?ObjectAnimator?objects????ObjectAnimator?animX?=?ObjectAnimator.ofFloat(myView,?x,?50f);??ObjectAnimator?animY?=?ObjectAnimator.ofFloat(myView,?y,?100f);??AnimatorSet?animSetXY?=?new?AnimatorSet();??animSetXY.playTogether(animX,?animY);??animSetXY.start();????2.One?ObjectAnimator????PropertyValuesHolder?pvhX?=?PropertyValuesHolder.ofFloat(x,?50f);??PropertyValuesHolder?pvhY?=?PropertyValuesHolder.ofFloat(y,?100f);??ObjectAnimator.ofPropertyValuesHolder(myView,?pvhX,?pvyY).start();????3.ViewPropertyAnimator?//这是view独有的??myView.animate().x(50f).y(100f);???如果要多次改变动画效果,可以直接设置keyFrame,//前半段从0变到360度,后半段从360度变回0度??Keyframe?kf0?=?Keyframe.ofFloat(0f,?0f);??Keyframe?kf1?=?Keyframe.ofFloat(.5f,?360f);??Keyframe?kf2?=?Keyframe.ofFloat(1f,?0f);??PropertyValuesHolder?pvhRotation?=?PropertyValuesHolder.ofKeyframe(rotation,?kf0,?kf1,?kf2);??ObjectAnimator?rotationAnim?=?ObjectAnimator.ofPropertyValuesHolder(target,?pvhRotation)??rotationAnim.setDuration(5000ms);?自定义控件常用方法Android的View系统是一个树形结构,每个节点是一个view,view的作用主要有两点:1、显示内容;2:处理事件。所以写自定义控件的时候处理好上述两点就可以了。一、显示内容一个view的显示又可以分为3部分:测量宽高,布局位置,绘制内容。每个部分
您可能关注的文档
- 动物的联想意义.ppt
- 动物科学系专业毕业论文.doc
- 加强版上海牛津版5年级第六单元ppt.ppt
- 第五章-电气消防基础知识 建(构)筑物消防员.ppt
- 第五章 设计文化的类型.ppt
- 漂亮的包装纸+ppt.ppt
- 第五章.组合体.ppt
- 漂亮的包装纸PPT.ppt
- 第五章.外商投资企业法律制度.pptx
- 漂珠在保温冒口套中的应用.pptx
- 2025年天然植物精油护肤品牌产品研发投入与品牌竞争力研究报告.docx
- 2025年航空航天零部件制造高精度加工技术市场前景展望报告.docx
- 户外教案中班.docx
- 2025年在线艺术拍卖平台艺术品鉴定与真伪识别技术分析.docx
- 2025年医疗服务行业品牌影响力提升策略研究报告.docx
- 朝花夕拾的读后感.docx
- 2025年区块链行业供应链风险管理大数据分析预警技术应用报告.docx
- 2024-2025学年初中劳动七年级(全一册)广州版教学设计合集.docx
- 2025年教育科技行业人才发展中的在线教育人才研究报告.docx
- 农业废弃物资源化利用产业技术创新与产业竞争力提升研究报告.docx
文档评论(0)