android动画详解一 概述
动画和图形概述
</div>Android提供了大量的强大的API以应用于UI动画和绘制2D和3D图形。下面各节向你描述了这些API的预览和系统能力以帮助你决定怎么才是达到你需求的最佳方法。
动画
Android框架提供了两个动画系统:两种动画系统都是切实可用的,但是一般情况下属性动画系统是被首推使用的。因为它更灵活并且提供了更多的特性。在此两系统之外,你还可以使用Drawable动画,它使得你可以加载drawable资源并且一帧帧的显示它们。
Property动画
从Android3.0(APIlevel11)开始引入,property动画系统使你可以动画一个对象的propertie,包括那些不能显示在屏幕上的对象。此系统是可扩展的并且也能让你动画自定义类型的propertie。
View动画
View动画是旧的动画系统并且只能被用于View。它的建立相对容易并且提供了足够的能力来满足任何应用的需求。
Drawable动画
Drawable动画一个接一个的显示Drawable资源,就像放电影。
2D和3D图形
当写一个应用时,仔细考虑你的图形需求是很重要的。不同的图形任务使用不同的技术实现。例如,图形和动画的实现对于一个静态应用与一个交互式游戏就差别很大。下面,我们将讨论一些在Android系统上的绘制图形的操作以及它们最适合的任务。
Canvas和Drawables
Android提供了一系列的Viewwidget,它们提供了丰富的用户界面功能。你也可以扩展这些widgets来改变它的们样子和行为。另外,你可以使用Canvas类的丰富的绘制方法做你自己的2D图形或为纹理按钮或一帧接一帧的动画创建Drawable对象。
硬加速
从Android3.0开始,你可以使用主流的CanvasAPI的硬加速功能大辐提高它们的性能。
OpenGL
Android支持OpenGLES1.0和2.0,Android框架API和本地API(NDK)都支持。当你想为你的应用添加一些CanvasAPI不支持的增强功能时,或你希望不依赖于平台并且没有高性能需求时,应使用框架API。NDK与框架API之间有性能的差别,所以图形集中式的应用比如游戏,使用NDK更佳(但是还要注意重要的一点,你仍然可以使用框架API达到高性能。比如,GoogleBodyapp就是完全用框架API实现的)。NDK中的OpenGL还有一个用处是用于移植本地代码(比如C++代码)到Android。