【自定义View学习笔记】Canvas:DrawText,文本居中的方法

【1】Text水平居中
Text水平居中:(View的宽度-Text宽度)/2 就是Text绘制的起始点X。
重点:Text宽度的测量,Paint 有测量方法:paint.measureText(str);

 String text="Helloword";
 float textWidth=paint.measureText(text);
 float x=(getWidth()-textWidth)/2;
 canvas.drawText(text,x,100,paint);

【2】Text垂直居中:这个比较复杂,请看https://www.jianshu.com/p/1728b725b4a6
或者直接复制代码哦。

  Paint.FontMetrics fontMetrics = paint.getFontMetrics();
  float y = getHeight() / 2 + (Math.abs(fontMetrics.ascent) - fontMetrics.descent) / 2;
 canvas.drawText(text,100,y,paint);

【3】水平垂直居中自然也就呼之欲出了,综合【1】【2】。

 canvas.drawText(text,x,y,paint);

完美搞定!!!

你可能感兴趣的:(【自定义View学习笔记】Canvas:DrawText,文本居中的方法)