动画和图形概述
Android提供了很多有用的api用来为UI元素绘制动画和绘制用户2D、3D图形。下面这些段落提供了一个这些API的概述和系统可用的一些能力,这将会帮助你在你需要使用这些的时候给你一个最好的择决。动画
Android框架提供了两种动画系统:属性动画(Android3.0中引入)和视图动画。两种动画系统都是可行的选择,但是一般属性动画系统是一个更佳的选择,因为他更加的灵活,并且提供了更多的功能。除了这两种动画之外,你还可以使用绘图动画。它运行你加载图形资源,并一帧一帧的显示。
Property Animation
属性动画是在3.0中引入的,他允许你为任何物体设置动画,包括没在在屏幕上渲染的。该系统是可扩展的,允许你为自定义的属性设置动画。
View Animation
视图动画是最早使用的动画,并且只能在视图上使用。他相对容易使用,并且提供了足够的功能来满足大部分应用的需求
Drawable Animation
绘图动画涉及一帧一帧的显示绘图资源,就像放电源一样。当你的动画容易使用一系列的绘图资源来描述时,如位图进度条。绘图动画将会非常的有用。
2D和3D图形
当你写一个应用的时候。准确的考虑图形的需求将是十分重要的。最后根据不同的图形任务来使用合适的图形需求。例如,为一个静态应用和一个交互的游戏应用使用的图形和动画技术将会很大的不同。这里,我们将会讨论几个在Android中可选的绘图方案,并且他们的适用场景。
Canvas and Drawables
Android提供了许多的绘图控件,他们提供了和用户交互的基本功能。你可以通过继承这些控件来改变他们的外观和行为。除此之外,你可以进行自己的2D渲染,通过使用Canvas中的绘制接口。或者通过创建Drawable对象来描述纹理按钮或者一帧一帧的动画
Hardware Acceleration
在3.0中开始引入,你可以使用硬件加速来完成以前有Canvas API完成的绘制操作,这样可以提供绘制的性能
OpenGL
Android通过框架api和NDK支持OpenGl ES 1.0、2.0。当你想为你的应用来添加一些图形增强功能,这些功能是Canvas API所不支持的。或者如果你期望平台独立且不要求很高性能,这个时候你可以使用框架的API.跟使用NDK相比,使用框架API会有一些性能损失,多余对于图形密集型应用程序,使用NDK更好(要注意到,通过使用框架API接口,你仍然可以获取到足够的性能,例如Google Body app就全部是使用框架api开发的)。在NDK中使用OpenGl也是有用的,当你有很多要移植到Android的原生代码
原文:file:///Z:/work/docs/guide/topics/graphics/overview.html