androd之绘制文本(FontMetrics)

转载 2011年01月14日 14:18:00

Canvas 作为绘制文本时,使用FontMetrics对象,计算位置的坐标。

它的思路和java.awt.FontMetrics的基本相同。

 

FontMetrics对象

它以四个基本坐标为基准,分别为:

・FontMetrics.top
・FontMetrics.ascent
・FontMetrics.descent
・FontMetrics.bottom

 

该图片将如下

 

 

测试代码:

Paint textPaint = new Paint( Paint.ANTI_ALIAS_FLAG);
textPaint.setTextSize( 35);
textPaint.setColor( Color.WHITE);

// FontMetrics对象
FontMetrics fontMetrics = textPaint.getFontMetrics();

String text = "abcdefghijklmnopqrstu";

// 计算每一个坐标
float baseX = 0;
float baseY = 100;
float topY = baseY + fontMetrics.top;
float ascentY = baseY + fontMetrics.ascent;
float descentY = baseY + fontMetrics.descent;
float bottomY = baseY + fontMetrics.bottom;

// 绘制文本
canvas.drawText( text, baseX, baseY, textPaint);

// BaseLine描画
Paint baseLinePaint = new Paint( Paint.ANTI_ALIAS_FLAG);>
baseLinePaint.setColor( Color.RED);
canvas.drawLine(0, baseY, getWidth(), baseY, baseLinePaint);

// Base描画
canvas.drawCircle( baseX, baseY, 5, baseLinePaint);

// TopLine描画
Paint topLinePaint = new Paint( Paint.ANTI_ALIAS_FLAG);
topLinePaint.setColor( Color.LTGRAY);
canvas.drawLine(0, topY, getWidth(), topY, topLinePaint);

// AscentLine描画
Paint ascentLinePaint = new Paint( Paint.ANTI_ALIAS_FLAG);
ascentLinePaint.setColor( Color.GREEN);
canvas.drawLine(0, ascentY, getWidth(), ascentY, ascentLinePaint);

// DescentLine描画
Paint descentLinePaint = new Paint( Paint.ANTI_ALIAS_FLAG);
descentLinePaint.setColor( Color.YELLOW);
canvas.drawLine(0, descentY, getWidth(), descentY, descentLinePaint);

// ButtomLine描画
Paint bottomLinePaint = new Paint( Paint.ANTI_ALIAS_FLAG);
bottomLinePaint.setColor( Color.MAGENTA);
canvas.drawLine(0, bottomY, getWidth(), bottomY, bottomLinePaint);

 

转自:http://fonter.javaeye.com/blog/474526

 

相关文章推荐

androd之绘制文本(FontMetrics)

Canvas 作为绘制文本时,使用FontMetrics对象,计算位置的坐标。 它的思路和java.awt.FontMetrics的基本相同。   FontMetrics对象...
  • tworoad
  • tworoad
  • 2013年03月07日 23:52
  • 319

Android 基本属性绘制文本对象FontMetrics介绍

一、Android绘制文本对象FontMetrics介绍 FontMetrics对象 它以四个基本坐标为基准,分别为: ・FontMetrics.top ・FontMetrics....
  • lovoo
  • lovoo
  • 2016年04月23日 16:02
  • 176

Android FontMetrics测试

  • 2015年08月03日 13:19
  • 2.29MB
  • 下载

FontMetrics与TextView.textSize的关系

确定FontMetrics与TextView.textSize的关系 { //test mode Paint testPaint = new Paint...
  • jayyuz
  • jayyuz
  • 2017年04月28日 11:19
  • 151

FontMetrics

原帖地址:http://blog.csdn.net/tianjf0514/article/details/7642656 Canvas 绘制文本时,使用FontMetrics对象,计算位置的坐标。...

FontMetrics以及自定义ImageSpan实现TextView中文图混排时文图的居中对齐

FontMetrics以及自定义ImageSpan实现TextView中文图混排时文图的居中对齐 作者 CnPeng 关注 2017.02.24 18:52* 字数 2420 阅读 72...

Android绘图drawText垂直居中与FontMetrics

自定义了一个MyView控件,重写它的onDraw来绘制一个点,和一串文字。绘制圆的坐标为200,300,绘制文字的坐标也为200,300。最初以为文字也是以中心为基准的,然后绘制之后发现文字并不是垂...

Paint---FontMetrics

这一篇接着讲PaintPaint.FontMetrics,字体属性及测量。API—Paint.FontMetrics | Android 开发者 5个属性,介绍如下: 基准点是baseli...

Android字体属性及测量(FontMetrics)

最近的一个模块正好用到字体的相关内容,整理出来。 (一) 字体的几个参数 ,以Android API文档定义为准,见下图 要点如下: 1. 基准点是baseline 2...

重新认识FontMetrics、Canvas.drawText

常常需要在自定义view中绘制文字时遇到在视图中间位置绘制一行文本,但是每次苦于找不到恰到好处的基准点,每次都要百度上搜来搜去,结果也是有很多种不统一的方法,今天决定好好研究一下FontMetrics...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:androd之绘制文本(FontMetrics)
举报原因:
原因补充:

(最多只允许输入30个字)