当前位置: 首页 > news >正文

自定义View之文字测量原理与文字特效实现

文字是Android UI上十分常见的内容,自定义文字效果也是我们在进行自定义view时经常会遇到的内容。

多数开发者可能会遇到这样的问题:实现绘制文字很简单,但是要做的精细精致却比较困难。

比如,实现文字贴边时,总是会差一点,绘制不到边上;进行文字居中时,总是离中间差一点,即使这次调好了,换一批文字显示,又会差一点;还有像绘制多行文字、围绕图片显示的多行文字、类似歌词显示的文字渐变效果等等。

本文将详细说明文字测量的原理,帮助大家解答上面的疑问。同时结合多行绘制、文字渐变案例场景的具体实现。帮助大家更好的理解和掌握自定义文字相关的内容,以及更好的在工作中进行应用。

一、文字的测量

前面提到,我们绘制文字时,有些场景下,如垂直居中、贴边等,经常出现离目标效果总是差一点的问题。这就要说到文字的测量。

我们调用canvas.drawText() api时,传入的位置信息x、y值,实际上默认是文字的左边(x)和基准线(y)的位置。

文字测量垂直方向上主要由五个位置组成,从上到下依次是top、acent、baseline、decent、bottom。

topbottom,分别表示文字所能达到的最高的位置和最低的位置。所有文字都不会超过top和bottom的区间。

ascent和decent,表示绝大多数文字所能达到的最高和最低位置,像中/英文等绝大多数文字,都会在ascent和decent之间。但是像一些少数名族语言,如藏语,就会超过这个界限。

baseLine,基准线,主要使用文字的对齐。因为即使同样大小的文字,每一个文字的高度可能都是不同的。为了上大部分文字看上去是齐的,因而设置了基准线。让文字基于基准线进行绘制,可以收到文字“整体上看上去是整齐”的效果。

http://www.jsqmd.com/news/1120987/

相关文章:

  • AI 学习路径推荐:别把薄弱点变成焦虑清单
  • PoseDiffusion部署实战:从本地测试到生产环境的完整指南
  • DocStrap社区贡献指南:如何参与项目开发与问题修复
  • 线性回归最小二乘法 Python 3.12 实现:从公式推导到 15 行核心代码
  • 省时省力!德国宣誓翻译驾照认证件去哪办?24小时出件全攻略
  • cdc同步工具
  • AI大模型驱动自动化测试:从原理到落地的全链路实践指南
  • nginx模块以及反向代理配置
  • 【Java课程设计/毕业设计】基于 SpringBoot 的数字科技风险报告管理系统的设计与实现智能化科技风险报告编制与溯源管理系统【附源码、数据库、万字文档】
  • 5分钟掌握163MusicLyrics:让每首歌都有完美歌词的终极解决方案
  • 从0到1打造终端工作流:gh_mirrors/do/dotfiles-archive的插件与主题安装教程
  • JoyAI-Image-Edit-Plus参数优化指南:30步出图+CFG=4.0,效果提升300%的秘密
  • Tabled API集成指南:如何将表格提取功能嵌入到你的应用中
  • Micro Journal Rev.7电子墨水屏版本:护眼写作的革命性突破
  • 融云「北极星」数据监控平台:数据可视通晓全局,精准分析定位问题
  • Auto Playwright:用自然语言驱动AI自动化测试,提升测试效率与健壮性
  • Instatic媒体批量上传:拖放功能与进度监控的终极指南
  • Android Debug Bridge (ADB) v1.0.41
  • 协议之RTCP介绍
  • readpe高级用法:CSV/XML/HTML输出格式定制与自动化分析技巧
  • postcss-write-svg与构建工具集成:Gulp/Grunt/PostCSS配置教程
  • Windows Research Kernel (WRK) 本地过程调用(LPC):Windows进程间通信的内核实现
  • 陶瓷基板在PCB设计中的核心价值与应用解析
  • Moodle完全指南:如何用3步创建您的第一个在线课程?
  • SC PV PVC volume svc的定义和区别
  • Node.js应用安全防护:从SQL注入与XSS攻击原理到实战防御体系构建
  • 3个颠覆性方法解决Iwara视频下载难题:让你的收藏效率提升500%
  • 3分钟掌握猫抓Cat-Catch:网页视频音频资源一键捕获终极指南
  • 【免费下载】 JHenTai 漫画阅读器开源项目教程
  • 开源Unity替代引擎Prowl:从痛点分析到完整解决方案