介绍
这期内容当中小编将会给大家带来有关怎么在Android中使用FontMetrics对象计算坐标,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。
帆布绘制文本时,使用FontMetrics对象,计算位置的坐标。
public static class FontMetrics { ,/* * ,,*,从而maximum distance above 从而baseline for 从而tallest glyph 拷贝; ,,*,从而font at a given text 大小。 ,,*/public 才能;float ,最高; ,/* * ,,*,从而recommended distance above 从而baseline for singled spaced 文本。 ,,*/public 才能;float ,上升; ,/* * ,,*,从而recommended distance below 从而baseline for singled spaced 文本。 ,,*/public 才能;float ,血统; ,/* * ,,*,从而maximum distance below 从而baseline for 从而lowest glyph 拷贝; ,,*,从而font at a given text 大小。 ,,*/public 才能;float ,底部; ,/* * ,,*,从而recommended additional space 用add 结构;lines of 文本。 ,,*/public 才能;float ,领先; }
它的各基准线可以参考下图:
上图其实是通过代码画出来的,具体代码如下:
/* *,绘制FontMetrics对象的各种线,*/mPaint.reset (); mPaint.setColor (Color.WHITE); mPaint.setTextSize (80);//,FontMetrics对象 FontMetrics FontMetrics =, mPaint.getFontMetrics (); String text =,“abcdefg";//,计算每一个坐标 float textWidth =, mPaint.measureText(文本); float baseX =, 30; float baseY =, 700; float topY =, baseY +, fontMetrics.top; float ascentY =, baseY +, fontMetrics.ascent; float descentY =, baseY +, fontMetrics.descent; float bottomY =, baseY +, fontMetrics.bottom;//,绘制文本 baseX canvas.drawText(文本、,,,baseY,, mPaint);//,基线描画 mPaint.setColor (Color.RED); canvas.drawLine (baseX, baseY, baseX +, textWidth,, baseY,, mPaint); mPaint.setTextSize (20); canvas.drawText (“base", baseX +, textWidth,, baseY,, mPaint);//,基地描画 canvas.drawCircle (baseX, baseY,, 5日,mPaint);//,背线描画 mPaint.setColor (Color.LTGRAY); canvas.drawLine (baseX, topY, baseX +, textWidth,, topY,, mPaint); canvas.drawText (“top", baseX +, textWidth,, topY,, mPaint);//,AscentLine描画 mPaint.setColor (Color.GREEN); canvas.drawLine (baseX, ascentY, baseX +, textWidth,, ascentY,, mPaint); canvas.drawText (“ascent", baseX +, textWidth,, ascentY +, 10日,mPaint);//,DescentLine描画 mPaint.setColor (Color.YELLOW); canvas.drawLine (baseX, descentY, baseX +, textWidth,, descentY,, mPaint); canvas.drawText (“descent", baseX +, textWidth,, descentY,, mPaint);//,ButtomLine描画 mPaint.setColor (Color.MAGENTA); canvas.drawLine (baseX, bottomY, baseX +, textWidth,, bottomY,, mPaint); canvas.drawText (“buttom", baseX +, textWidth,, bottomY +, 10日,mPaint);
相信通过以上程序,能够很好的理解背线,buttomLine,基线,ascentLine, descentLine。
另外:油漆类有两个方法
/* * ,* Return 从而distance above (负面),从而baseline (提升),based 提醒 ,* current typeface 以及text 大小。 ,* ,* @return 从而distance above (负面),从而baseline (提升),based 提醒 ,*,,,,current typeface 以及text 大小。 ,*/public native  float 提升(); ,/* * ,* Return 从而distance below (积极的),从而baseline (血统),based 提醒 ,* current typeface 以及text 大小。 ,* ,* @return 从而distance below (积极的),从而baseline (血统),based ,*,,,,,current typeface 以及text 大小。 ,*/null怎么在Android中使用FontMetrics对象计算坐标