Android提供了各种各样的非常有用的APIs用来实现UI上元素的动画或者绘制自己的2D,3D图形.本章下面的内容是对APIs和系统可用模型的概述(1),从而帮助你决定那种方法是你最需要的.
动画
Android Framework层提供两个动画系统:属性动画(引进于3.0)和view动画(2).两个动画系统都是可行的选择,但是,通常的说,属性动画是我们更喜欢用的方法.因为它更加灵活,并且提供更多的特性.除了这两个之外,你还可以利用Drawable animation(3),它允许你加载图片资源,然后逐帧展示它们。
属性动画:
引进于Android3.0(API level 11),它是根据控件的属性进行动画,包括那些没有渲染到屏幕上的。这个动画系统是可扩展的,而且能非常好的自定义你的动画属性。
View动画:
View动画是一个旧的动画系统,它只能应用在Views上(4)。它的使用相对的简单而且有足够的能力去满足一些应用的需求。
Drawable动画:
Drawable动画包括一个接一个的展示Drawable资源,就像转动一个交卷。这个动画的方法对于你想展示的一些简单的通过Drawable资源表现的动画的来说足够使用了,就像bitmaps的连续播放。
2D和3D图形
当写一个应用的时候,切实的考虑你的图形需求将会是什么是非常重要的。不同的图形任务最好由不同的技术来实现。例如,一个相比较静态的应用的图形和动画的实现和一个交互式的游戏的图形和动画的实现是有很大不同的。这里,我们将会讨论一些你可有的选择用来在Android上绘制图形,并且他们适用于什么样的情况.
画布和Drawable
Android提供了一组视图部件,这些部件提供了一系列广泛的大量的用户接口.你也可以继承这些部件去定义它们的行为或者表现的方式.另外,你可以定义你自己的2D渲染,通过使用各种各样的绘画方法包括画布类或者创建Drawable对象例如有纹理的按钮或是逐个的动画.
硬件加速
是在Android3.0开始有的,你可以使用硬件加速大多数的Canvas API的绘画功能,进一步的提升它们的性能.
OpenGL
Android支持OpenGL1.0 和 2.0版本,根据Android Framework层的API和一些原生的NDK方法.当你想添加一些图形增强效果而此时CanvasAPI又不支持的时候,或者你想要平台独立而不需要更高的性能,使用Framework层的API往往是会有满意结果的.这里有一个关于使用Framework和NDK的性能比较,对于许多图形密集的应用就像游戏,使用NDK是有利的.(这里非常有必要说一句的是,即使你通过Framework的API也能得到重组的性能.例如,Google Body app是完全的由FrameworkAPI开发.)如果你有大量的本地C代码,你想把它移植到Android上,那么使用OpenGL和NDK是非常有用的.对于使用NDK的更多信息,可以阅读文档,在docs/目录。
1. 应该说的是API Demo
2. 即我们常说的补间动画
3. 即我们常说的帧动画
4. 可以看出前文中说的,属性动画是对属性操作的,而不是view这个整体。
翻译自谷歌API Guides -- Animation and Graphics -- overview,由于作者水平有限啊,所以凑合着看看吧。。。这是动画概述。。。下面的博客我要写一系列Android动画了。