分类: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。
一是高级别的用法,即通过在xml文件中声明画板资源来使用它。即在XML文件中利用画板资源嵌入绘图指令,或者以编程方式创建自定义图形。
二是低级别的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、运行截图
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)的基本用法" }, } });