paint.setStyle(Paint.Style.FILL);填充
paint.setStyle(Paint.Style.STROLL);描边
创建水波纹的效果。就是不断的减少画笔的宽度。
使用paint.setStrokeWidth();
//线帽 也就是笔尖的形状
paint.setStrokeCap(Paint.Cap.BUTT) //没有
paint.setScrokeCap(Paint.Cap.ROUND)//圆形
paint.setScrokeCap(Paint.Cap.SQUARE)//方形
//线条交汇的地方
paint.setStrokeJoin(Paint.JoinBEVEL.MITER)//锐角
paint.setStrokeJoin(Paint.Join.ROUND)//圆角
paint.setStrokeJoin(Paint.Join.BEVEL)//直角·
//文本绘制
paint.setDither(true)//绘制的图片颜色更加的饱满艳丽。
paint.getFontSpacing();//获取字符行间距
paint.getLetterSpacting();//获取字符之间的间距
paint.setStrikeThruText(true) //设置文本删除线
paint.setUnderLineText(true) //设置下划线
paint.setTextSize(textsize)//设置文本的大小
paint.setTypeface(Typeface.BOLD) //设置字体类型
paint.setTextSkewX(-0.25f)//设置文字的倾斜。默认是0,官方推荐是-0.25f是斜体
paint.setTextAlign(Align.LEFT)//设置绘制文字的对齐方式
//计算定制长度的字符串(字符长度。字符个数。显示的时候真实的长度)
int breakText=paint.breakText(text,messureForwords,maxWidth,measuredWidth);
//具体使用
float[] measuredWidth=new float[1];
paint.breakText(str,true,200,measuredWidth);
paint.getTextBounds(text,start,end,bounds)//获取文本的矩形区域(宽高)
//获取文本的宽度,但是相对是一个比较粗略的结果
paint.measureText(text);
//获取文本的宽度,和上面类似 ,但是是比较精准的
paint.getTextWidths(text,widths);
mPaint.setTextSkew(-0.25f) 设置倾斜
mPaint.setTextAlign(Align.LEFT) //设置文字的对齐方式
mPaint.setTexrtAlign(Align.CENTER);
mPaint.setTextAlign(Align.RIGHT)
文字绘制的时候是依照基线进行绘制。因此绘制的时候要求出基线在那个位置。
求baseline的位置的时候需要求出
FontMeterics fonMetrics=mPaint.getFontMetrics();
fontMetrics.top;
fontMetrics.ascent;
fontMetrics.descent;
fontMetrics.bottom;
这是以baseLine作为基准,上面的是负数,下面的是正数。
那么使用的baseline的数值就是y-fontMerics.top
注意获取到文字中间的Y中间坐标的公式
float baselineY=centerY+(fontMetrics.bottom-fontmetircs.top)/2-fontmetrics.bottom
绘制图片的时候,可以使用着色器,通过设置着色器的模式TileMode.MIRROR,TileMode.CLAMP ,TileMode.REPEAT. 最后一个是延展的意思。
BitmapShader shader=new BitmapShader(bitmap,TileMode.CLAMP,TileMode.CLAMP);
mPaint.setShader(shader);
然后进行绘制通过canvas绘制矩形区域就可以使用这个bitmap进行绘制整个矩形区域。
这里的BitmapShader就是位图的着色器