1、今天我们继续介绍 Android 平台底层绘图类的相关内容,在 Android UI 开发专题(一) 之界面设计中我们介绍了有关 Android 平台资源使用以及 Bitmap 相关类的操作,接下来将会以实例的方式给大家演示各种类的用处以及注意点。今天我们继续了解 android.graphics 包中比较重要的绘图类。一、 android.graphics.Matrix有关图形的变换、缩放等相关操作常用的方法有:void reset() / 重置一个 matrix 对象。void set(Matrix src) /复制一个源矩阵,和本类的构造方法 Matrix(Matrix src) 一样b
2、oolean isIdentity() /返回这个矩阵是否定义 (已经有意义)void setRotate(float degrees) /指定一个角度以 0,0 为坐标进行旋转void setRotate(float degrees, float px, float py) /指定一个角度以 px,py 为坐标进行旋转void setScale(float sx, float sy) / 缩放void setScale(float sx, float sy, float px, float py) /以坐标 px,py 进行缩放void setTranslate(float dx, floa
3、t dy) /平移void setSkew (float kx, float ky, float px, float py) /以坐标 px,py 进行倾斜void setSkew (float kx, float ky) /倾斜二、android.graphics.NinePatchNinePatch 是 Android 平台特有的一种非矢量图形自然拉伸处理方法,可以帮助常规的图形在拉伸时不会缩放,实例中 Android 开发网提示大家对于 Toast 的显示就是该原理,同时 SDK 中提供了一个工具名为 Draw 9-Patch,有关该工具的使用方法可以参考我们经发布的 Draw 9-Pa
4、tch 使用方法介绍一文。由于该类提供了高质量支持透明的缩放方式,所以图形格式为 PNG,文件命名方式为.9.png 的后缀比如android123.9.png。三、android.graphics.PaintPaint 类我们可以理解为画笔、画刷的属性定义,本类常用的方法如下:void reset() /重置void setARGB(int a, int r, int g, int b) 或 void setColor(int color) 均为设置 Paint 对象的颜色void setAntiAlias(boolean aa) /是否抗锯齿,需要配合 void setFlags (Pai
5、nt.ANTI_ALIAS_FLAG) 来帮助消除锯齿使其边缘更平滑。Shader setShader(Shader shader) /设置阴影,Shader 类是一个矩阵对象,如果为 NULL 将清除阴影。void setStyle(Paint.Style style) /设置样式,一般为 FILL 填充,或者 STROKE 凹陷效果。void setTextSize(float textSize) /设置字体大小void setTextAlign(Paint.Align align) /文本对齐方式Typeface setTypeface(Typeface typeface) /设置字体,
6、通过 Typeface 可以加载 Android 内部的字体,一般为宋体对于中文,部分 ROM 可以自己添加比如雅黑等等void setUnderlineText(boolean underlineText) /是否设置下划线,需要撇和 void setFlags (Paint.UNDERLINE_TEXT_FLAG) 方法。四、android.graphics.RectRect 我们可以理解为矩形区域,类似的还有 Point 一个点,Rect 类除了表示一个矩形区域位置描述外,android123 提示主要可以帮助我们计算图形之间是否碰撞(包含) 关系,对于 Android 游戏开发比较有用
7、,其主要的成员 contains 包含了三种重载方法,来判断包含关系boolean contains(int left, int top, int right, int bottom)boolean contains(int x, int y)boolean contains(Rect r)五、android.graphics.RegionRegion 在 Android 平台中表示一个区域和 Rect 不同的是,它表示的是一个不规则的样子,可以是椭圆、多边形等等,而 Rect 仅仅是矩形。同样 Region 的 boolean contains(int x, int y) 成员可以判断一个点
8、是否在该区域内六、android.graphics.TypefaceTypeface 类是帮助描述一个字体对象,在 TextView 中通过使用 setTypeface 方法来制定一个输出文本的字体,其直接构造调用成员 create 方法可以直接指定一个字体名称和样式,比如static Typeface create(Typeface family, int style)static Typeface create(String familyName, int style)同时使用 isBold 和 isItalic 方法可以判断出是否包含粗体或斜体的字型。final boolean isBold()final boolean isItalic()该类的创建方法还有从 apk 的资源或从一个具体的文件路径,其具体方法为static Typeface createFromAsset(AssetManager mgr, String path)static Typeface createFromFile(File path)static Typeface createFromFile(String path)有关 Android 平台的图形、图像我们在前两节中已经整理出来,下次我们将首先讲述下 NinePatch 的实例应用。