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对象 它以四个基本坐...
  • fengyee_zju
  • fengyee_zju
  • 2013年11月27日 22:16
  • 629

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

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

Android之绘制文本(FontMetrics) 获取文本高度

Canvas 作为绘制文本时,使用FontMetrics对象,计算位置的坐标。  它的思路和java.awt.FontMetrics的基本相同。 FontMetrics对象 它以四个...
  • chengkaizone
  • chengkaizone
  • 2016年05月12日 12:23
  • 1070

使用 FontMetrics 计算文本长度

假设你要在Swing中使用Graphics对象画一些字符。你的程序需要显示两行字符。程序调用Graphics.drawString方法画第一行,然后,在调用一次,画第二行。DrawString方法需要...
  • bananabear
  • bananabear
  • 2007年03月20日 23:29
  • 4083

android|图形图像 fontmetrics 文本绘制

有不少同学对Android 中的文本绘制的相关知识不了解,或者每次当自己想绘制文本时,总是画不出自己想要的效果,根本原因就是对FontMetrics不甚了解,今天就来给大家普及下相关的知识,让大家彻底...
  • l491337898
  • l491337898
  • 2016年08月28日 14:56
  • 239

Canvas中绘制文本的FontMetrics

Canvas中绘制文本对象时,用FontMetrics来描述文本的坐标,以四个基本坐标为基准,分别为: ・FontMetrics.top ・FontMetrics.ascent ・FontMet...
  • champgauss
  • champgauss
  • 2014年03月13日 08:56
  • 537

FontMetrics 字体属性类 java

1.       FontMetrics  字体属性 1.        GetAscent()   //ascent表示字体从基线到顶端的距离 2.        getDescent()  /...
  • yuge1hao
  • yuge1hao
  • 2014年04月07日 20:24
  • 504

QPainter绘制文本 二

先从最简单任务开始:在 widget 的左上角(0, 0)处绘制字符串 jEh。void MainWidget::paintEvent(QPaintEvent *) { QPainter pa...
  • TemetNosce
  • TemetNosce
  • 2017年09月23日 08:42
  • 369

Qpainter绘制文本

文本的绘制有两种方式:在指定位置绘制文本,不会自动换行 void QPainter::drawText(int x, int y, const QString &text) void ...
  • TemetNosce
  • TemetNosce
  • 2017年09月23日 08:14
  • 478

Android字体度量(FontMetrics)

基本概念 字体的度量,是指对于指定字号的某种字体,在度量方面的各种属性,其描述参数包括: baseline:字符基线ascent:字符最高点到baseline的推荐距离top:字符最高点到bas...
  • u011600928
  • u011600928
  • 2015年02月25日 09:40
  • 3100
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:androd之绘制文本(FontMetrics)
举报原因:
原因补充:

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