Android的DrawText详解,2021年网易Android岗面试必问

本文详细探讨了在Android中如何使用DrawText在Canvas上绘制文字,特别是通过Paint.getTextBounds获取文字尺寸的注意事项。文中指出,该方法返回的Rect对象坐标并非基于左上角,而是相对于左侧中间靠下的点。同时,介绍了文字的偏移处理,并强调了在将文字绘制到Canvas左上角(0,0)时的调整。此外,内容还提及了Android面试中可能涉及的相关知识点。" 103032720,8708879,Bert模型的加载与应用,"['自然语言处理', '预训练模型', '深度学习', 'transformers', 'word2vec']
摘要由CSDN通过智能技术生成

Android的文档也没有仔细说,打开源码一看,又跑到native代码里去执行了。

1408964085_thumb.jpeg

对于一段文字来说,如果你想把他画到Canvas上,首先你要确定这段文字的范围,即宽度和高度,那么怎么去取这一段的高度呢,如果你在网上搜,会有很多种答案,具体应该用哪一种呢?这要看你到底需要什么样的尺寸了。

Paint.getTextBounds: 当你通过这个方法来获取尺寸的时候,你可以得到能够包裹文字的最小矩形,就是图中红色边框的那部分,你可以得到一个Rect对象,包含这个最小尺寸的几个值。坑其实就在这里:这里的Rect对象坐标并不是以左上角为准的,而是相对于左边中间靠下位置的一个点,就是图中的黄色五角星。而这里水平的Baseline指的是字符串对齐的一条线。既然这样,r.top就是一个负值了,r.bottom会是一个小一点的正值,r.left和r.right在图中画的都很清楚。通过r.width()和r.height()来获取尺寸。

那么文字的偏移就好说了,比如说你要把文字画在Canvas的左上角,坐标是(0,0),但是当你通过:

《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值