分类: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)的基本用法" },
new ChItem { type=typeof(ch2104ZoomActivity), Title="例21-4 图片动画缩放", Desc = "演示图片动画缩放的基本用法(点击看大图)" },
}
});

【Android】第21章 2D图形和动画的更多相关文章

  1. 【Android】21.2 2D图形图像处理(Canvas和Paint)

    分类:C#.Android.VS2015: 创建日期:2016-03-19 一.Canvas对象简介 画布(Canvas对象)是与System.Drawing或iOS核心图形等传统框架非常类似的另一种 ...

  2. Android面试收集录 2D绘图与动画技术

    1.如何在Android应用程序的窗口上绘制图形? 继承View 实现View中的onDraw()方法 2.如何绘制圆,空心椭圆? canvas.drawArc或canvas.drawCircle方法 ...

  3. 【Android】21.3 动画

    分类:C#.Android.VS2015: 创建日期:2016-03-21 一.简介 Android 提供了以下三种创建动画的方式: Drawable Animations – 画板动画,也叫帧动画( ...

  4. 《Programming WPF》翻译 第7章 1.图形基础

    原文:<Programming WPF>翻译 第7章 1.图形基础 WPF使得在你的应用程序中使用图形很容易,以及更容易开发你的显卡的能力.这有很多图形构架的方面来达到这个目标.其中最重要 ...

  5. 【Android】21.1 画板资源

    分类:C#.Android.VS2015: 创建日期:2016-03-19 一.简介 画板资源(Drawable Resources)是用XML描述/Resources/drawable中的2D图形文 ...

  6. [android] 练习样式主题自定义activity切换动画

    主要练习了自定义样式和主题,继承android系统默认的样式并修改,练习xml定义淡入淡出动画 anim/fade_in.xml <?xml version="1.0" en ...

  7. HTML5 Canvas核心技术:图形、动画与游戏开发 PDF扫描版​

    HTML5 Canvas核心技术:图形.动画与游戏开发 内容简介: <HTML5 Canvas核心技术:图形.动画与游戏开发>中,畅销书作家David Geary(基瑞)先生以实用的范例程 ...

  8. Android利用canvas画各种图形

    Android利用canvas画各种图形(点.直线.弧.圆.椭圆.文字.矩形.多边形.曲线.圆角矩形) 本文链接:https://blog.csdn.net/rhljiayou/article/det ...

  9. Shadertoy 教程 Part 5 - 运用SDF绘制出更多的2D图形

    Note: This series blog was translated from Nathan Vaughn's Shaders Language Tutorial and has been au ...

随机推荐

  1. android 时间与String的相互转化

    :大体思路 [html] view plaincopy 这种转换要用到java.text.SimpleDateFormat类 字符串转换成日期类型: 方法1: 也是最简单的方法 Date date=n ...

  2. 飘逸的python - 使用reload进行热更新

    一开始我们的游戏商城配置是从txt读取解析的. 后来为了方便运营修改配置,改成从数据库读取并提供后台可视化编辑配置. 如果为了使配置生效而重启游戏进程那太麻烦了. 这时候reload就派上用途了. 下 ...

  3. Struts2(二)action的三种方式

    一.普通java类 package com.pb.web.action; /* * 创建普通的java类 */ public class HelloAction1 { public String ex ...

  4. Java AES 加密工具类

    package com.microwisdom.utils; import java.security.NoSuchAlgorithmException; import java.security.S ...

  5. 原来Java中有两个ArrayList

    首先给出一段代码: public class AslistMethod { public static void main(String[] args) { String sentence = &qu ...

  6. 基于jquery的锚点滚动插件(百度百科效果) anchorScroll.js

    1.插进使用场景 请打开https://baike.baidu.com/item/%E6%97%A5%E6%9C%AC%E5%8A%A8%E7%94%BB#hotspotmining,查看百度百科页面 ...

  7. 使用loadrunner对https协议(单双向SSL)的web端性能测试 (转)

    1.项目背景 1.1 单双向SSL的含义及部署 单向SSL即我们说到的https协议. 特点是,浏览器需要请求验证服务器证书: 基本含义是:一个安全通信通道,它基于HTTP开发,用于在客户计算机和服务 ...

  8. OpenWrt 中安装配置Transmission

    参考文章https://wiki.openwrt.org/doc/uci/transmission 1. 安装包 必装的 transmission-daemon-openssl (后台服务)选装的 t ...

  9. iOS微信支付集成

    概述 iOS微信支付集成 详细 代码下载:http://www.demodashi.com/demo/10735.html 支付宝和微信都是业界的老大哥,相信大家都有所觉得文档.SDK都是各种坑吧(纯 ...

  10. Android API之android.provider.ContactsContract.RawContacts

    android.provider.ContactsContract.RawContacts Constants for the raw contacts table, which contains o ...