Canvas(画布)

来源:互联网 发布:论坛源码 编辑:程序博客网 时间:2024/05/06 11:44

  Canvas(): 创建一个空的画布,可以使用setBitmap()方法来设置绘制具体的画布。
  Canvas(Bitmap bitmap): 以bitmap对象创建一个画布,则将内容都绘制在bitmap上,因此bitmap不得为null。

1.画线

drawLine(float startX, float startY, float stopX, float stopY, Paint paint)
前四个参数分别为起点的坐标与终点的坐标,第5个参数为画笔。
drawLines(float[] pts, Paint paint)
drawLines(float[] pts, int offset, int count, Paint paint)
几条线一起画,数组里面至少需要有4个参数,参数意义如drawLine,offset与count分别为数组的起点与终点。
2.画点
drawPoint(float x, float y, Paint paint)
前两参数为点的位置
drawPoints(float[] pts, Paint paint)
drawPoints(float[] pts, int offset, int count, Paint paint)
画一系列点
3.画圆
drawCircle(float cx, float cy, float radius, Paint paint)
前两参数确定圆心,第三参数为半径。
4.画背景颜色

public void drawColor (int color)

5.画椭圆

drawOval(RectF oval, Paint paint)

6.画矩形

drawRect(float left, float top, float right, float bottom, Paint paint)

drawRect(RectF rect, Paint paint)

drawRect(Rect r, Paint paint)

4个点构成一个矩形,第一个方法前四个参数分别是与左上原点的距离。

7.画圆角矩形

drawRoundRect(RectF rect, float rx, float ry, Paint paint)
8.画文字

drawText(String text, float x, float y, Paint paint)

drawText(CharSequence text, int start, int end, float x, float y, Paint paint)

drawText(char[] text, int index, int count, float x, float y, Paint paint)

drawText(String text, int start, int end, float x, float y, Paint paint)

9.画路径上的图形

drawPath(Path path, Paint paint)

把要画的图形定义在path上,再draw。


Paint是用于画图的画笔类。


1.ascent()

返回在基准线之上的距离(负数)。(画文字时有用,base线为高度参数)

假如要求文字以点(x,y)为垂直中心,那么画文字的高度应该为

y+(descent-ascent)/2 - descent = y-(descent + ascent)/2。

2.breakText

测量一行文字能画的最大个数。

3.setAntiAlias(boolean)

抗锯齿。

4.setColor(int)

设置颜色。

5.setStyle(Style)

设置格式,有三种,默认是实心,图片永远是实心,几何图形与文字可以设置为只描线。

6.setStrokeWidth(int)

设置线条宽度。

7.setDither(boolean)

抖动。去除色块,平滑的提高显示效果,影响性能。dither和tileMode

8.setTextAlign(Paint.Align.?)

文字的空间占用方向。?=RIGHT、LEFT、CENTER,分别代表已绘制的坐标点为文字的最右边、左边、中间点。

。。。。。。。。。

原创粉丝点击