自定义View学习之路(二)————Paint与Canvas
Paint简介:
可以理解为画笔,染料等。提供了在绘制前做准备工作的相关方法。
Paint常用方法:
-
Paint的3中style:
Paint.Style.FILL:填充内部
Paint.Style.FILL_AND_STROKE :填充内部和描边
Paint.Style.STROKE :描边 -
setAntiAlias(boolean aa);//设置抗锯齿,如果不设置,加载位图的时候可能会出现锯齿状的边界,如果设置,边界就会变的稍微有点模糊,锯齿就看不到了。
-
setDither(boolean dither)//设置是否抖动,如果不设置感觉就会有一些僵硬的线条,如果设置图像就会看的更柔和一些,
-
setUnderlineText(boolean underlineText);//设置文本的下划线
-
setStrikeThruText(boolean strikeThruText);//设置文本的删除线
-
setFakeBoldText(boolean fakeBoldText);//设置文本粗体
-
setFilterBitmap(boolean filter);//对位图进行滤波处理,如果该项设置为true,则图像在动画进行中会滤掉对Bitmap图像的优化操作,加快显示
-
setARGB(int a, int r, int g, int b);//设置画笔颜色,argb形式alpha,red,green,blue每个范围都是[0-255]
-
setPathEffect(PathEffect effect)//设置绘制路径的效果,有ComposePathEffect,CornerPathEffect,DashPathEffect,DiscretePathEffect,PathDashPathEffect,SumPathEffect
-
setShadowLayer(float radius, float dx, float dy, int shadowColor);//设置阴影效果,radius为阴影角度,dx和dy为阴影在x轴和y轴上的距离,color为阴影的颜色 ,看一下演示效果,其中第一个是没有阴影的,第二个设置了黑色的阴影
-
getTextPath(char[] text, int index, int count, float x, float y, Path path),getTextPath(String text, int start, int end, float x, float y, Path path);//获取文本绘制的路径,提取到Path中
-
getTextBounds(String text, int start, int end, Rect bounds) ,getTextBounds(char[] text, int index, int count, Rect bounds)//得到文本的边界,上下左右,提取到bounds中,可以通过这计算文本的宽和高
Canvas简介:
Canvas可以理解为画布,配置好画笔后,我们可以调用Canvas的各种绘制方法。
绘制直线:canvas.drawLine(float startX, float startY, float stopX, float stopY, Paint paint);
绘制矩形:canvas.drawRect(float left, float top, float right, float bottom, Paint paint);
绘制圆形:canvas.drawCircle(float cx, float cy, float radius, Paint paint);
绘制字符:canvas.drawText(String text, float x, float y, Paint paint);
绘制图形:canvas.drawBirmap(Bitmap bitmap, float left, float top, Paint paint);