Android 使用Canvas绘制文本相关

我们在自定义View的时候,常常需要在Canvas上绘制文本。而我们在绘制文本时主要使用的API是

//绘制文本
public void drawText(@NonNull String text, float x, float y, @NonNull Paint paint)

一.确认文本绘制的位置
上面绘制文本的方法参数x代表的是绘制文本时的对齐方式的X坐标。这个对齐方式用Paint对象进行设置,包括Paint.Align.LEFT(左对齐,文本的左边与X坐标对齐,绘制的文本全部位于X坐标的右边),Paint.Align.RIGHT(右对齐,文本的右边与X坐标对齐,绘制的文本全部位于X坐标的左边),Paint.Align.CENTER(中对齐,文本位于X坐标的两边且均分)。

val mPaint = Paint(Paint.ANTI_ALIAS_FLAG)
//设置绘制文本的对齐方式
mPaint.textAlign = Paint.Align.LEFT

参数y代表的是绘制文本时的基线Y坐标。那什么是基线呢?看下面一张图

上面红色的那条线就是基线,绿色为文本内容的最高点,蓝色为文本内容的最低点。
很多时候,我们希望的是文本内容垂直居中。那我们如何根据中线的Y坐标求出基线的Y坐标呢?从上面的图可以看出【基线的Y坐标 = 中线的Y坐标 + (Descent - Ascent) / 2 - Descent】。现在,我们知道了计算方法。但是我们如何得到上面的这些数据呢?在Paint类里面有一个静态内部类Paint.FontMet

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值