【网学网提醒】:网学会员为需要朋友们搜集整理了Android UI开发专题(二) 之绘图基础相关资料,希望对各位网友有所帮助!
AndroidUI开发专题(二)之绘图基础开发专题(
今天我们继续介绍Android平台底层绘图类的相关内容,在AndroidUI开发专题(一)之界面设计中我们介绍了有关Android平台资源使用以及Bitmap相关类的操作,接下来将会以实例的方式给大家演示各种类的用处以及注意点。今天我们继续了解android.graphics包中比较重要的绘图类。一、android.graphics.Matrix有关图形的变换、缩放等相关操作常用的方法有:voidreset()//重置一个matrix对象。voidset(Matrixsrc)//复制一个源矩阵,和本类的构造方法Matrix(Matrixsrc)一样booleanisIdentity()//返回这个矩阵是否定义(已经有意义)voidsetRotate(floatdegrees)//指定一个角度以0,0为坐标进行旋转voidsetRotate(floatdegrees,floatpx,floatpy)//指定一个角度以px,py为坐标进行旋转voidsetScale(floatsx,floatsy)//缩放voidsetScale(floatsx,floatsy,floatpx,floatpy)//以坐标px,py进行缩放voidsetTranslate(floatdx,floatdy)//平移voidsetSkew(floatkx,floatky,floatpx,floatpy)//以坐标px,py进行倾斜voidsetSkew(floatkx,floatky)//倾斜二、android.graphics.NinePatchNinePatch是Android平台特有的一种非矢量图形自然拉伸处理方法,可以帮助常规的图形在拉伸时不会缩放,实例中Android开发网提示大家对于Toast的显示就是该原理,同时SDK中提供了一个工具名为Draw9-Patch,有关该工具的使用方法可以参考我们经发布的Draw9-Patch使用方法介绍一文。由于该类提供了高质量支持透明的缩放方式,所以图形格式为PNG,文件命名方式为.9.png的后缀比如android123.9.png。
三、android.graphics.PaintPaint类我们可以理解为画笔、画刷的属性定义,本类常用的方法如下:voidreset()//重置voidsetARGB(inta,intr,intg,intb)或voidsetColor(intcolor)均为设置Paint对象的颜色voidsetAntiAlias(booleanaa)//是否抗锯齿,需要配合voidsetFlags(Paint.ANTI_ALIAS_FLAG)来帮助消除锯齿使其边缘更平滑。ShadersetShader(Shadershader)//设置阴影,Shader类是一个矩阵对象,如果为NULL将清除阴影。voidsetStyle(Paint.Stylestyle)//设置样式,一般为FILL填充,或者STROKE凹陷效果。voidsetTextSize(floattextSize)//设置字体大小voidsetTextAlign(Paint.Alignalign)//文本对齐方式TypefacesetTypeface(Typefacetypeface)//设置字体,通过Typeface可以加载Android内部的字体,一般为宋体对于中文,部分ROM可以自己添加比如雅黑等等voidsetUnderlineText(booleanunderlineText)//是否设置下划线,需要撇和voidsetFlags(Paint.UNDERLINE_TEXT_FLAG)方法。四、android.graphics.RectRect我们可以理解为矩形区域,类似的还有Point一个点,Rect类除了表示一个矩形区
域位置描述外,android123提示主要可以帮助我们计算图形之间是否碰撞(包含)关系,对于Android游戏开发比较有用,其主要的成员contains包含了三种重载方法,来判断包含关系booleancontains(intleft,inttop,intright,intbottom)booleancontains(intx,inty)booleancontains(Rectr)五、android.graphics.Region
Region在Android平台中表示一个区域和Rect不同的是,它表示的是一个不规则的样子,可以是椭圆、多边形等等,而Rect仅仅是矩形。同样Region的booleancontains(intx,inty)成员可以判断一个点是否在该区域内六、android.graphics.TypefaceTypeface类是帮助描述一个字体对象,TextView中通过使用setTypeface在方法来制定一个输出文本的字体,其直接构造调用成员create方法可以直接指定一个字体名称和样式,比如staticTypefacecreate(Typefacefamily,intstyle)staticTypefacecreate(StringfamilyName,intstyle)同时使用isBold和isItalic方法可以判断出是否包含粗体或斜体的字型。finalbooleanisBold()finalbooleanisItalic()该类的创建方法还有从apk的资源或从一个具体的文件路径,其具体方法为staticTypefacecreateFromAsset(AssetManagermgr,Stringpath)staticTypefacecreateFromFile(Filepath)staticTypefacecreateFromFile(Stringpath)有关Android平台的图形、图像我们在前两节中已经整理出来,下次我们将首先讲述下NinePatch的实例应用。