android帆布drawText()文字居中效果

  

本文跟大家分享下我关于drawText()文字居中的方法。

  

先附上drawText()的方法说明

  

 android帆布drawText()文字居中效果”> <br/>
  </p>
  <p>说实话当时看了这个,我也没明白这个x, y坐标到底表达的啥意思,还一直以为是绘制文字中心的坐标,后来发现这个理解是错误的<br/>
  要想理解这个首先看张图</p>
  <p> <img src=   矩形矩形=new矩形(100100500500);//画一个矩形   涂rectPaint=new ();   rectPaint.setColor (Color.BLUE);   rectPaint.setStyle (Paint.Style.FILL);   画布。绘制矩形(矩形、rectPaint);      涂textPaint=new ();   textPaint.setColor (Color.WHITE);   textPaint.setTextSize (50);   textPaint.setStyle (Paint.Style.FILL);//该方法即为设置基线上那个点究竟是左,中心,还是正确的这里我设置为中心   textPaint.setTextAlign (Paint.Align.CENTER);      油漆。FontMetrics FontMetrics=textPaint.getFontMetrics ();   浮顶=fontMetrics.top;//为基线到字体上边框的距离,即上图中最高的   浮动底=fontMetrics.bottom;//为基线到字体下边框的距离,即上图中的底部      int baseLineY=(int) (rect.centerY() -前/2底/2);//基线中间点的y轴计算公式      canvas.drawText(“你好世界”,rect.centerX (), baseLineY, textPaint);   之前      

这里有点要注意textPaint.getFontMetrics()这个方法一定要在设置字体大小或者样式等等一系列会影响字体的方法后在调用,不然获取到的顶部和底部值不准。

  

效果如下

  

 android帆布drawText()文字居中效果”> <br/>
  </p>
  <p>正好是在中间的,即证明等式是没有问题的,再来分析这个等式是如何计算的</p>
  <p> <img src=android帆布drawText()文字居中效果