Android 字符串测绘参考值

private void drawText(Canvas canvas, int x, int y, int width, int height){
        Paint.FontMetrics fontMetrics = paintText.getFontMetrics();

        canvas.drawText("TESThf我y", x, y, paintText);

        int line1 = y;
        int line2 = (int) (line1 + fontMetrics.top);
        int line3 = (int) (line1 + fontMetrics.ascent);
        int line4 = (int) (line1 + fontMetrics.descent);
        int line5 = (int) (line1 + fontMetrics.leading);
        int line6 = (int) (line1 + fontMetrics.bottom);

        // line2 top = y + top
        canvas.drawLine(0, line2, width, line2, linePaint);
        canvas.drawLine(20, line2, 20 + 100, line2 - 100, linePaint);
        canvas.drawText("top:" + fontMetrics.top, 100 + 20, line2 - 100, linePaint);

        // line3 ascent = y + ascent 上升
        canvas.drawLine(0, line3, width, line3, linePaint);
        canvas.drawLine(40, line3, 40 + 100, line3 - 100, linePaint);
        canvas.drawText("ascent:" + fontMetrics.ascent, 100 + 40, line3 - 100, linePaint);

        // line1 base = y
        canvas.drawLine(0, line1, width, line1, linePaint);
        canvas.drawLine(60, line1, 60 + 100, line1 + 100, linePaint);
        canvas.drawText("Base", 60 + 100, line1 + 100, linePaint);

        // line4 descent = y + descent 下降
        canvas.drawLine(0, line4, width, line4, linePaint);
        canvas.drawLine(0, line4, 100, line4 + 100, linePaint);
        canvas.drawText("descent:" + fontMetrics.descent, 100, line4 + 100, linePaint);

        // line5 leading = y + leading 行距
        canvas.drawLine(0, line5, width, line5, linePaint);
        canvas.drawLine(200, line5, 200 + 100, line5 + 100, linePaint);
        canvas.drawText("leading:" + fontMetrics.leading, 200 + 100, line5 + 100, linePaint);

        // line6 bottom = y + bottom
        canvas.drawLine(0, line6, width, line6, linePaint);
        canvas.drawLine(400, line6, 400 + 100, line6 + 100, linePaint);
        canvas.drawText("bottom:" + fontMetrics.bottom, 400 + 100, line6 + 100, linePaint);
    }

 

打赏