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

更多相关文章

  1. Android(安卓)几种网络请求的区别与联系
  2. Android中使用achartengine生成图表
  3. Android(安卓)Canvas绘图详解
  4. android super this区别
  5. 【Android(安卓)开发教程】纯编码实现UI
  6. Square 开源库Flow和Mortar的介绍
  7. 【攻克Android(安卓)(40)】JSON解析
  8. Android应用开发SharedPreferences存储数据的使用方法 以及与 ge
  9. Android中创建Message两种方法比较,new Message和obtainMessage

随机推荐

  1. Using WebViews and JavaScript
  2. android有用网址
  3. Android应用程序消息处理机制(Looper、Han
  4. android 模拟器使用指导
  5. 2011.09.26——— android sample之Notep
  6. 设置listview中的item的颜色
  7. android camera
  8. android 进制转换 (高低位)
  9. 如何进行Android单元测试
  10. Android全屏设置的两种方式