Canvas 作为绘制文本时,是以基线为基准绘制的,不是左上角

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);



更多相关文章

  1. android 按行读取txt文本内容
  2. Android(安卓)CheckBox设置背景selector和文本text 设置selectCo
  3. 阅读《Android(安卓)从入门到精通》(5)——文本框视图
  4. android强大的SpannableStringBuilder
  5. 定时任务方案
  6. android 获取实时麦克风声音大小
  7. php、java、android、ios通用的3des方法(推荐)
  8. android点击文本框之外的地方隐藏键盘
  9. android的图片加载和伸缩处理

随机推荐

  1. JS调用Java代码(Android)
  2. Android 上架应用市场整理
  3. 客制化android activity的title
  4. Android 4.0 的 GridLayout
  5. android 重点
  6. android键盘事件
  7. android Scroller
  8. Android Activity启动慢
  9. Android滑动卡片效果:Swipecards
  10. android 手势识别