zoukankan      html  css  js  c++  java
  • (转)androd之绘制文本(FontMetrics)

    转:http://fonter.iteye.com/blog/474526

    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);
  • 相关阅读:
    iOS 单例(Singleton)总结 和第三库引用单例
    iOS OpenURL用法简介
    CGContextRef学习笔记
    iOS 绘图(虚线、椭圆)
    iPhone4s 7.0.3-4 TableView 数据越界 解决方案
    Android Media应用开发
    RTMP & HLS
    Debug tool 学习笔记
    video codec 学习笔记
    matplotlib和numpy 学习笔记
  • 原文地址:https://www.cnblogs.com/Jessy/p/2361603.html
Copyright © 2011-2022 走看看