Android 开发指南 - 二维图形 收藏
二维图形 2D Graphics
Android 提供一个定制的 2D 图形库,用来绘制图形图像 和制作动画。你将从
android.graphics.drawable 和 android.view.animation 包中找到这些通用类。
本文简单介绍如何在 Android 应用程序中进行画图。 我们将讨论使用 Drawable 对象画图的
基础知识,如何使用几个 Drawable 子类,以及如何创建动画,一个图形的补间动画或者一
系列图形的连续动画(就像电影胶卷一样)。
可绘制物 Drawables
一个 Drawable 是一个“某些可以被绘制的物体”的一般抽象 。你将发现这个 Drawable 类
扩展了多种具体可绘制图形类,包括
BitmapDrawable, ShapeDrawable, PictureDrawable, LayerDrawable, 等等。当然,你还可
以扩展这些类来定义你自己的具有独特行为的可绘制对象。
有三种方式来定义和实例化一个 Drawable :使用一个保存在你的项目资源中的图像;使用
一个定义了 Drawable 属性的 XML 文件;或者使用通常的类构造函数。下面,我们将挨个
讨论前面两种方法(对于一个经验丰富的开发人员而言,使用构造函数没什么新意)。
从资源图像中创建 Creating from resource images
一个为你的应用程序增加图形的简单方法是通过引用项目资源中的一个图片文件。 支持的图
片文件格式有 PNG (推荐的), JPG (可接受的)和 GIF (不鼓励的)。这个技术将显然
推荐使用在应用程序图标, logo ,或者其它类似使用于游戏中的图形。
为了使用一个图片资源, 只要把你的文件添加到你项目的 res/drawable/ 目录即可。 从那
里,你可以在代码或 XML 布局中进行引用。任何一种方式,都是通过资源 ID 来引用,资
源 ID 是不带扩展后缀的文件名(比如, my_image.png 通过 my_image 来引用 )。
注意 : 图像资源被放在 res/drawable /里。也许会通过 aapt 工具进行无损图像压缩而被
自动优化。 比如,一个不需要多于 256 色的真彩色 PNG 图片可能会被转换成一个带有调
色板的 8 位 PNG 。这产生了相同质量但占用更少内存的图片。因此需要意识到该目录下
的二进制图像可能会在编译期间被改变。如果你想以比特流读取一个图片并转换为一个
位图,那么需要把你的图片文件放在 res/raw/ 目录,这里的文件不会被优化。
示例代码 Example code
下面的代码片断说明了如何构造一个 ImageView ,从 drawable 资源中使用并添加到布局中。
LinearLayout mLinearLayout;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Create a LinearLayout in which to add the ImageView
mLinearLayout = new LinearLayout(this);