paint的属性

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就是位图的着色器
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值