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

第1章 属性动及动画与图形概述.docVIP

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第章 1.1 动画 Android框架提供了两种动画系统:属性动画(在Android3.0中引进)以及视图动画。这两种动画系统都有变化的选择,但是总的来说,属性动画系统是更好的选择,因为它更加灵活,并提供了更多的特性。在这两种系统之外,你可以使用帧动画,即你可以加载画图资源,并一帧接一帧的显示它们。 属性动画: 在Android3.0中引进 (API level 11), 属性动画系统可以使任何对象的属性成为动画,包括那些不会在屏幕上显示的对象。这个系统是可扩展的,而且也适用于自定义类型。 视图动画: 视图动画则是比较旧的系统,只能用于View类。它相对更容易被设置,而且足够满足许多应用的需求。 帧动画: 帧动画即一个接一个的显示Drawable资源,就像放一部电影。如果你想要的动画可以简单的用资源来表示,比如一系列的位图,那就可以用这种方法 1.2 2D和3D图形 当你写一个应用时,首先确定你的图形需求十分的重要,不同的图形任务最好用不同的技术来实现。举例来说,一个稳定的应用和一个互动游戏的图形和动画是有很大不同的。在这里,我们要讨论你在Android上绘图的一些方式,以及它们分别适用于哪些任务。 Canvas和Drawables: Android 提供了一系列的View 小部件来为一系列的用户界面提供广泛的支持。你也可以继承这些小部件来修改它们的外表或行为方式。除此以外,你可以你可以用Canvas类里的各种绘图方法自定义2D视图,或创建Drawable对象。 硬件加速: 从Android 3.0开始, 你可以通过Canvas API来硬件加速大多数的绘画工作,从而进一步提高它们的性能。 OpenGL: Android 在框架API层面和NDK上都支持 OpenGL ES 1.0 和 2.0。当你想加入少数一些Canvas API不支持的图像增强时,或是你希望平台独立,而不需要高性能时,你可以使用框架API。但使用NDK时,性能会有明显的突破,所以对于许多关注图形的应用,比如游戏,使用NDK是更有利的选择。如果你有很多的本地代码想转到Android平台上,也可以使用NDK上的OpenGL。 1.3 属性动画 属性动画系统是一个强大的框架,它允许你几乎所有的东西。无论是否它绘制到屏幕上或没有,你可以定义一个动画改变任何对象的属性伴随时间的推移。指定的时间长度属性动画改变了属性(对象的一个域)的值。对应动画,如指定你想要对象属性,例如一个对象在屏幕中的位置,动画,和动画之间的。 属性动画系统可让您定义以下特点动画: Duration(时间):您可以指定动画的持续时间。默认长度是300毫秒。 Time interpolation(时间):定义了动画变化的频率。 Repeat count and behavior(重复计数和行为):您可以指定是否有一个动画的重复,当它到达时间结束,如何多次重复的动画。您还可以指定是否要反向播放动画。把它设置为reverse动画向前然后向后反复,直到重复次数达到。 Animator sets(动画设置):你能按照一定的逻辑设置来组织动画,一起播放或顺序或指定延迟。 Frame refresh delay(帧刷新延迟):您可以指定如何经常刷新你的动画帧。默认设置每10毫秒刷新,但在的应用程序可以指定刷新帧的速度,最终取决于系统整体的状态和依据底层的定时器提供多快的速度。 图1-1 一个线性动画的例子还可以指定动画有一个非。图说明了一个假想的对象,在开头动画加速,在动画结束时减速。对象仍然在40毫秒移动40个像素,但非线性。在开始的时候,这个动画加速的中间点,然后从中间点减速,直到动画结束。如图2所示,动画的开始和结束移动距离小于中间。 图1-2 一个线性动画的例子让我们看在属性动画系统的重要组成部分,如何计算像上面显示的动画的详细介绍。图3描述了主要类是怎么工作的。 图1-3 动画ValueAnimator对象保持动画的实时跟踪,如动画已经运行的时间,和当前动画的属性值。 在ValueAnimator封装TimeInterpolator,它定义动画和TypeEvaluator,它定义了如何计算的动画属性的值。例如,如图2,使用的TimeInterpolator是AccelerateDecelerateInterpolatorTypeEvaluator是IntEvaluator的。 启动动画,创建一个ValueAnimator,给你想要的动画开始和结束值,定义动画的持续时间。当你调用的start()动画开始。在整个动画,ValueAnimator计算基于动画的持续时间和多少时间已过介于0和1。经过的部分代表,动画已完成的时间百分比,0表示0%和100%1的含义。例如,在图1中,在t 40毫秒。计算经

文档评论(0)

mei1809816wei + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档