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);
  • 相关阅读:
    返回一个整数数组中最大子数组的和2
    RT-Thread之自动初始化
    Git
    基于STM32的FreeRTOS移植
    RT-Thread之debug使用
    大数的进制转换
    uva-10110
    UVA-10061
    算法训练Maze
    森林变树
  • 原文地址:https://www.cnblogs.com/Jessy/p/2361603.html
Copyright © 2011-2022 走看看