Animation and Graphics Overview
Android提供了许多应用于UI控件的动画、和绘制自定义2D和3D图形的接口。下面是这些系统功能的API的概述,它可以帮你找到最适合你所需的方法。
Animation
Android framework提供了两种动画系统:属性动画和视图动画。两种动画系统都是可行的选择,但总的来说,更多的是使用属性动画,因为它更灵活且提供了更多灵活的特性。另外,这两种动画系统,你都可以通过加载drawable资源的drawable动画效果来一帧帧的显示它们。
属性动画在Android 3.0(API 11)引入,它可以运用到任何对象的属性中,包括还没被渲染到屏幕的对象。属性动画的扩展性可以让你动画自定义类型的属性。
视图动画是一个相对旧的动画系统,它只能应用于View上。但是它比较容易使用且提供相对较多的功能满足于许多应用所需。
Drawable动画是通过一帧帧的显示Drawable资源的动画,这有点像电影的播放。如果你想很方便的显示多个Drawable资源,比如用位图表示的进度条,那这种方式是很好用的。
2D and 3D Graphics
当你编写一个应用程序的时候,考虑究竟会有什么图形需求是非常重要的。变化性的图形需求最好使用不一样的技术来实现。比如,实现相对静态的应用程序的图形和动画技术与实现一个游戏交互的图形和动画技术是非常一样的。
安卓提供一系列满足于广泛用户功能需求的View控件。你也可以通过继承这些控件来修改它们的样式和接口方法。另外,你可以通过使用Canvas类或者创建Drawable对象的绘制方法来自定义2D渲染,比如渲染一个按钮的纹理背景或者创建一个帧动画。
Hardware Acceleration
从Android 3.0开始,你可以使用硬件加速大部分Canvas的绘制来提高应用的表现性能。
Android framework支持OpenGL ES 1.0和2.0,以及原生的NDK工具。当你想添加图形增强的需求到那些不支持Canvas接口或者不需要高性能表现于独立平台的应用程序中,你可以通过使用这个工具。与NDK相比,使用android framework接口有一个性能表现的问题,所以很多图形比较多的应用程序比如游戏,使用NDK开发是更有效益的。(尽管如此,你仍然能通过framework的接口来得到足够的性能,比如,Google Body app就是完全使用framework的接口来实现的。)如果你有大量的原生代码要用到Android应用上面,那么Open GL与NDK的结合使用是非常有用的。
原文链接:https://developer.android.google.cn/guide/topics/graphics/overview.html