你的位置:首页 > 操作系统

[操作系统]【Android】第21章 2D图形和动画


分类:C#、Android、VS2015;

创建日期:2016-03-19

一、简介

Android系统定义了一系列独立的图形处理类,其中,2D图形处理类分别位于以下命名空间:

Android.Graphices

Android.Graphics.Drawable.Shapes

Android.View.Animation

3D图形的处理类位于Android.Opengl命名空间下。

总体来说,Android的Graphics技术大致可以分为两大类:图形和动画。

图形又被进一步分为2D图形和3D图形。

2D图形处理基本可以分为两类:一类是静态图形处理,用于处理一些不经常变化的图片,比如图标、Logo、动画等,一般将这些图形作为资源文件添加到项目中(Resources/Drawable/、Resources/anim/);另一类是动态图形处理,即将经常变化的图片(大小、位置、形状)不停地定期复制绘制,如游戏中的各种场景、任务和道具等。

3D图形则通过大量的可用内置框架(如针对移动版本的OpenGL ES)和其他第三方框架(如MonoGame,兼容XNA的跨平台工具包)来实现。

这一节我们主要学习Android内置的2D绘图和动画基本技术。

1、2D Graphices基本概念

Android 提供了创建2D图形的两个不同的API。

一是高级别的用法,即通过在二是低级别的API,一般在Canvas对象中使用它,最常用的是在位图上绘图并对其显示的内容进行细粒度的控制。

2、动画基本概念

除了2D图形技术以外,Android 还提供了几种创建动画的方法:

  • Drawable Animations – 画板动画。提供了按帧播放的简单动画API,指定以后,Android就会按顺序加载和显示可绘制资源的序列,播放效果很像在播放卡通(cartoon)漫画。
  • View Animations - 视图动画。Android原创的动漫API,在安卓系统的所有版本中都可用。此API仅限于在View对象中执行简单的转换,这些转换文件一般在/Resources/anim文件夹中定义。
  • Property Animations – 属性动画。这是从Android 3.0开始引入的API,可对任何对象的属性进行动画处理(包括View)。这种灵活性允许动画封装在不同的类中,使代码共享更加方便。

注意:View动画仅适用于早期的Android 3.0(API 11)版本提供的API。除此之外,其他情况都应该用属性动画提供的API来实现。换言之,虽然这三种动画都可用,但只要有可能,都应该优先考虑用属性动画来实现。

二、本章示例主界面

1、运行截图

image

2、ch.cs文件中相关的代码

chItems.Add(new Chapter(){  ChapterName = "第21章 2D图形和动画",  ChapterItems = new ChItem[]  {    new ChItem { type=typeof(ch2101MainActivity), Title="例21-1 画板基本语法", Desc = "演示画板资源(Drawable Resource)的基本用法" },    new ChItem { type=typeof(ch2102MainActivity), Title="例21-2 画布基本语法", Desc = "演示画布(Canvas)的基本用法" },    new ChItem { type=typeof(ch2103MainActivity), Title="例21-3 动画基本语法", Desc = "演示动画(animation)的基本用法" },  }});