网站大量收购独家精品文档,联系QQ:2885784924

动画技术总结.docx

  1. 1、本文档共17页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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部分:测量宽高,布局位置,绘制内容。每个部分

文档评论(0)

yaocen + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档