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);
  • 相关阅读:
    手搓一个兔子问题(分享一个C语言问题,持续更新...)
    一个C语言萌新的学习之旅(持续更新中...)
    ...续上文(一个小萌新的C语言之旅)
    手搓一个C语言简单计算器。
    嘿,C语言(持续更新中...)
    一个博客萌新的博客之旅。。。。
    vue+uikit3+laravel快速建站
    mpvue开发博客园小程序
    C语言俄罗斯方块小游戏练习
    c语言贪吃蛇小游戏练习
  • 原文地址:https://www.cnblogs.com/Jessy/p/2361603.html
Copyright © 2011-2022 走看看