动画和图形——Overview

来源:互联网 发布:广联达软件电气 编辑:程序博客网 时间:2024/06/05 18:54

安卓系统提供了一套很强的UI动画和绘制2D,3D图形的API。

Animation

安卓framework提供了两类动画系统:property animation(属性动画)(安卓3.0引入)和view animation(视图动画)。两类动画都是不错的选择,但property animation因其较大的灵活性和更丰富的特征性更为开发人员所青睐。这两类动画之外,还有一种Drawable animation(绘制动画)。它允许我们装载图画资源并把它们以帧的形式显示出来。

Property Animation

    安卓3.0引入(API级别11),property animation允许我们把任何实物属性作为动画,包括那些不能渲染到屏幕上的实物。这类动画灵活性很强         ,我们也可以用它绘制传统类型的动画。

View Animation

    这类动画比较老旧,它之能为view绘制动画。它相对简单,但也足以满足大多数应用的需求。

Drawable Animation

    这类动画能像电影一样一帧一帧的显示各种Drawable Resources。因此它很适于制作以Drawable resources显示出来的动画,比如bitmap(位图)进度。

2D和3D图形 

作一个应用时,需要明确它的图形需求。改变图形任务的最好方式是改变技术。比如实现一个相对静态的应用的图形和动画与一个动态应用有很大的差异。接下来,我们将要讨论安卓系统各类动画的适用性。

Canvas and Drawables

    安卓系统提供了一套View控件实现不同功能来满足用户需求。我们可以继承这些控件来改变它们的外观和功能。除此之外,我们可以使用Canvas和Drawable类提供的绘制方法渲染我们自定义的2D图形,例如图文按钮或者帧动画。

Hardware Acceleration

从安卓3.0开始,我们可以对用Canvas绘制的图形实现硬件加速功能提高它们的显示效果。

OpenGL

安卓系统支持OpenGL ES 1.0和2.0,我们需要使用安卓framework API和本地开发包。当我们需要小幅度增强CanvasAPI没有提供的应用图形效果时,或者当我们希望实现平台独立不要求较高的图形效果时,可以使用framework OpenGL相关API。与使用本地开发包相比,使用frameworkAPI是一个performance hit,所以对于许多图形要求较高的应用而言,比如游戏,使用本地开发包更有裨益(需要指出的是,使用framework API仍然可以实现足够的效果,比如Google Body应用就是完全的使用framework API)。当代码中出现了许多native代码时,使用本地开发包的OpenGL进行过渡会很有效。

原创粉丝点击