画笔与画布类

Android允许我们自己在屏幕上花一些自定义的图形,这就用到了画笔和画布类

1.Paint类

Paint类表示画笔,用来描述图形的颜色和风格,如线宽、颜色、透明度和填充效果等信息。使用Paint类时,需要先创建该类的对象,这可以通过该类提供的构造方法来实现。通常情况下,只需要使用Paint()方法来创建一个使用默认设置的Paint对象。

而画笔类有一些常用的方法。

setARGB(int a,int r,int g,int b)

用于设置颜色,各参数值均为0-255之间的整数,分别用于表示头透明度、红色、绿色、和蓝色值

setColor(int color)

用于设置颜色,参数color可以通过Color类提供的颜色常量指定,也可以通过Color.rgb(int r,int g,int b)方法指定

setAlpha(int a)

设置绘制图形的透明度,值为0-255之间的整数

setAntiAlias(boolean aa)

设置是否使用抗锯齿功能,会消耗较大资源,绘制图形速度会变慢。

setDither(boolean dither)

设定是否使用图像抖动处理,会使绘制出来的图片颜色更加平滑和饱满,图像更加清晰

setXfermode(Xfermode xfermode)

设置图形重叠时的处理方式,如合并,取交集或并集,经常用来制作橡皮的擦除效果 

setStyle

用于设置填充风格,参数值为Style.FILL,Style.FILL_AND_STROKE,Style.STROKE

而其中比较重要的 Xfermode,也是我们做圆形图时关键的属性,它有以下几种默认的属性:

PorterDuff.Mode.CLEAR

所绘制不会提交到画布上。

 

PorterDuff.Mode.SRC

显示上层绘制图片

 

PorterDuff.Mode.DST

显示下层绘制图片

 

PorterDuff.Mode.SRC_OVER

正常绘制显示,上下层绘制叠盖

 

PorterDuff.Mode.DST_OVER

上下层都显示。下层居上显示

 

PorterDuff.Mode.SRC_IN

取两层绘制交集。显示上层

 

PorterDuff.Mode.DST_IN

取两层绘制交集。显示下层

 

PorterDuff.Mode.SRC_OUT

取上层绘制非交集部分

 

PorterDuff.Mode.DST_OUT

取下层绘制非交集部分

 

PorterDuff.Mode.SRC_ATOP

取下层非交集部分与上层交集部分

 

PorterDuff.Mode.DST_ATOP

取上层非交集部分与下层交集部分

 

PorterDuff.Mode.XOR

取两层绘制非交集。两层绘制非交集

 

PorterDuff.Mode.DARKEN

上下层都显示。变暗

 

PorterDuff.Mode.LIGHTEN

上下层都显示。变亮

 

PorterDuff.Mode.MULTIPLY

取两层绘制交集

 

PorterDuff.Mode.SCREEN

上下层都显示

 



2.RectF类和Rect

RectF

RectF一共有四个构造方法:
RectF()构造一个无参的矩形
RectF(float left,float top,float right,float bottom)构造一个指定了4个参数的矩形
RectF(RectF r)根据指定的RectF对象来构造一个RectF对象(对象的左边坐标不变)
RectF(Rect r)根据给定的Rect对象来构造一个RectF对象
RectF提供了很多方法,下面介绍几个方法:
Public Boolean contain(RectF r);
判断一个矩形是否在此矩形内,如果在这个矩形内或者和这个矩形等价则返回true,同样类似的方法还有public Boolean contain(float left,float top,float right,float bottom)和public Boolean contain(float x,float y)。
Public void union(float x,float y)
更新这个矩形,使它包含矩形自己和(x,y)这个点。


Rect

这个类和RectF很相似,不同的地方时Rect类的坐标使用整形表示的,而RectF的坐标时用单精度浮点型表示的

RectF 这个类包含一个矩形的四个单精度浮点坐标。矩形通过上下左右4个边的坐标来表示一个矩形。这些坐标值属性可以被直接访问,用width()和 height()方法可以获取矩形的宽和高。注意:大多数方法不会检查这些坐标分类是否错误(也就是left<=right和top& lt;=bottom)


3.Canvas类

Canvas类表示画布,通过该类提供的方法,可以绘制各种图形,例如矩形、圆形和线条等。通常情况下,要在Android中绘图,需要先创建一个继承自View类的视图,并且在该类中重写它的onDraw(Canvas canvas)方法,然后在显示绘图的Activity中添加该视图。

比较常见的几何图形包括点、线、弧、圆形、矩形等,在Android中,Canvas类提供了丰富的绘制几何图形的方法,常用的几何图形的方法如下

Canvas类表示画布,通过该类提供的方法,可以绘制各种图形,例如矩形、圆形和线条等。通常情况下,要在Android中绘图,需要先创建一个继承自View类的视图,并且在该类中重写它的onDraw(Canvas canvas)方法,然后在显示绘图的Activity中添加该视图。

比较常见的几何图形包括点、线、弧、圆形、矩形等,在Android中,Canvas类提供了丰富的绘制几何图形的方法,常用的几何图形的方法如下

drawArc(RectF oval,float startAngle,float sweepAngle,boolean useCenter,Paint paint

绘制弧

drawCircle(float cx,float cy,float radius,Paint paint)

绘制圆形

drawLine(float startX,float startY,float stopX,float stopY,Paint paint)

绘制一条直线

drawLines(float[] pts,Paint paint)

绘制多条直线

drawOval(RectF oval,Paint paint)

绘制椭圆

drawPoint(float x,float y,Paint paint)

绘制一个点

draoPoints(float[] pts,Paint paint)

绘制多个点

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

绘制矩形

drawRoundRect(RectF rect,float rx,float ry,Paint paint)

绘制圆角矩形

drawBitmap(Bitmap bitmap,Rect src,Rectf dst,Paint paint)

从指定点绘制从源位图中挖取的一块

drawBitmap(Bitmap bitmap,float left,float top,Paint paint)

在指定点绘制位图



猜你喜欢

转载自blog.csdn.net/cfy137000/article/details/50407411