美文网首页
Android Text Measure/Draw

Android Text Measure/Draw

作者: TastyDeath | 来源:发表于2018-12-22 17:16 被阅读0次

确定一个字符串绘制的字符高度以及行高

fontMetrics.png 实例

字符高度

我们在绘制文字的时候,需要确定绘制的字符高度以免发生重叠等问题,最简单的方式是通过Paint的fontMetrics来确定,如上图所示,一个文字有五个属性

  • top 文字绘制行顶部相对baseLine的y值
  • ascent 单个文字顶部相对baseLine的y值
  • baseLine 文字绘制的y轴基点,用canvas.drawText(String text, float x, float y, Paint paint)方法绘制的时候,参数y就是绘制文字的baseLine
  • bottom 文字绘制行底部相对baseLine的y值
  • descent 单个文字底部相对baseLine的y值
  • 还有一个leading属性,是文字行间距

所以很明显的,字符高度就是descent - ascent

行高

行高就是bottom - top + leading

绘制

progress.jpg

canvas.drawText(String text, float x, float y, Paint paint)方法绘制的时候
需要确定baseLine,比如我需要绘制一个垂直进度图,需要计算高度生成MeasureSpec,从上往下计算:textY

  • textY += paddingTop
  • text高度=bottom-top + leading
  • 自己定义的进度文字之间的间距D*M个
  • text高度*N个...
  • textY += paddingBottom

绘制的时候
计算baseLine的位置abs(ascent)

相关文章

  • Android Text Measure/Draw

    确定一个字符串绘制的字符高度以及行高 字符高度 我们在绘制文字的时候,需要确定绘制的字符高度以免发生重叠等问题,最...

  • Android 自定义View之Draw过程(上)

    前言 Android 展示之三部曲: Measure(测量)---->Layout(摆放)---->Draw(绘制...

  • Android measure layout draw

    MeasureSpec的简单说明Android自定义View基础之MeasureSpec详解公共技术点之 View...

  • Measure

    本文主要android View绘制三大流程(measure、layout、draw)中的measuer流程。如何...

  • Android View 绘制流程

    Android 的绘制过程可分为3个步骤即:measure(测量)、layout(布局)、draw(绘制)。 一、...

  • Android - View 的工作原理

    Android-View 的工作原理 View 的工作流程主要指的是 measure、layout、draw 这三...

  • Android View 的 measure 流程

    Android View的主要工作流程包括:测量measure-->布局layout-->绘制draw,本篇主要讲...

  • Android View绘制流程

    相信很多Android开发的同学都知道View绘制流程大致是先measure、layout、draw。但是你们知道...

  • Android View的Measure过程

    大家都知道Android View绘制过程包含Measure、Layout、Draw三个主要的过程,这个过程看似简...

  • View绘制机制和自定义

    Android系统中,View的绘制机制,主要是三个步骤,measure,layout,draw。而无论是View...

网友评论

      本文标题:Android Text Measure/Draw

      本文链接:https://www.haomeiwen.com/subject/jsaikqtx.html