Android UI开发专题(二) 之绘图基础

今天我们继续介绍Android平台底层绘图类的相关内容,在Android UI开发专题(一) 之界面设计中我们介绍了有关Android平台资源使用以及Bitmap相关类的操作,接下来将会以实例的方式给大家演示各种类的用处以及注意点。今天我们继续了解android.graphics包中比较重要的绘图类。
  一、android.graphics.Matrix

  有关图形的变换、缩放等相关操作常用的方法有:
  void reset()// 重置一个matrix对象。
  voidset(Matrix src) //复制一个源矩阵,和本类的构造方法 Matrix(Matrix src) 一样
  booleanisIdentity() //返回这个矩阵是否定义(已经有意义)
  voidsetRotate(float degrees) //指定一个角度以0,0为坐标进行旋转
  voidsetRotate(float degrees, float px, float py) //指定一个角度以px,py为坐标进行旋转
  voidsetScale(float sx, float sy) // 缩放
  voidsetScale(float sx, float sy, float px, float py) //以坐标px,py进行缩放
  voidsetTranslate(float dx, float dy) //平移
  void setSkew(float kx, float ky, float px, float py) //以坐标px,py进行倾斜
  void setSkew(float kx, float ky) //倾斜

  二、android.graphics.NinePatch

  NinePatch是Android平台特有的一种非矢量图形自然拉伸处理方法,可以帮助常规的图形在拉伸时不会缩放,实例中Android开发网提示大家对于Toast的显示就是该原理,同时SDK中提供了一个工具名为Draw 9-Patch,有关该工具的使用方法可以参考我们经发布的 Draw 9-Patch使用方法介绍一文。由于该类提供了高质量支持透明的缩放方式,所以图形格式为PNG,文件命名方式为.9.png 的后缀比如android123.9.png。

  三、android.graphics.Paint

  Paint类我们可以理解为画笔、画刷的属性定义,本类常用的方法如下:
  void reset()//重置
  voidsetARGB(int a, int r, int g, int b) 或 void setColor(int color) 均为设置Paint对象的颜色
  voidsetAntiAlias(boolean aa) //是否抗锯齿,需要配合void setFlags (Paint.ANTI_ALIAS_FLAG) 来帮助消除锯齿使其边缘更平滑。
  ShadersetShader(Shader shader) //设置阴影,Shader类是一个矩阵对象,如果为NULL将清除阴影。
  voidsetStyle(Paint.Style style) //设置样式,一般为 FILL 填充,或者STROKE凹陷效果。
  voidsetTextSize(float textSize) //设置字体大小
  voidsetTextAlign(Paint.Align align) //文本对齐方式
  TypefacesetTypeface(Typeface typeface) //设置字体,通过Typeface可以加载Android内部的字体,一般为宋体对于中文,部分ROM可以自己添加比如雅黑等等
  voidsetUnderlineText(boolean underlineText) //是否设置下划线,需要撇和void setFlags (Paint.UNDERLINE_TEXT_FLAG) 方法。

  四、android.graphics.Rect

  Rect我们可以理解为矩形区域,类似的还有Point一个点,Rect类除了表示一个矩形区域位置描述外,android123提示主要可以帮助我们计算图形之间是否碰撞(包含)关系,对于Android游戏开发比较有用,其主要的成员contains包含了三种重载方法,来判断包含关系
  booleancontains(int left, int top, int right, int bottom)
  booleancontains(int x, int y)
  booleancontains(Rect r)

  五、android.graphics.Region

  Region在Android平台中表示一个区域和Rect不同的是,它表示的是一个不规则的样子,可以是椭圆、多边形等等,而Rect仅仅是矩形。同样Region的boolean contains(int x, int y) 成员可以判断一个点是否在该区域内

  六、android.graphics.Typeface

  Typeface类是帮助描述一个字体对象,在TextView中通过使用setTypeface方法来制定一个输出文本的字体,其直接构造调用成员create方法可以直接指定一个字体名称和样式,比如
  staticTypeface create(Typeface family, int style)
  staticTypeface create(String familyName, int style)
  同时使用isBold和isItalic方法可以判断出是否包含粗体或斜体的字型。
  finalboolean isBold()
  finalboolean isItalic()
  该类的创建方法还有从apk的资源或从一个具体的文件路径,其具体方法为
  staticTypeface createFromAsset(AssetManager mgr, String path)
  static TypefacecreateFromFile(File path)
  staticTypeface createFromFile(String path)
  有关Android平台的图形、图像我们在前两节中已经整理出来,下次我们将首先讲述下NinePatch的实例应用。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值