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);
  • 相关阅读:
    [Abp vNext微服务实践]
    [Abp vNext微服务实践]
    开源项目
    ORA-28002: x天之后口令将过期
    Linux压缩和解压
    cortex-m3内核的芯片截图,以及内核学习
    lpc1768的时钟树梳理和小结
    lp17xx的iap的向量表区别
    关于core_cm3.c和core_cm3.h,Core_cmFunc.h 和 Core_cmInstr.h的理解
    Python从json中提取数据
  • 原文地址:https://www.cnblogs.com/Jessy/p/2361603.html
Copyright © 2011-2022 走看看