type
status
date
slug
summary
tags
category
password
icon

⽂字的测量

  • 绘制⽂字:drawText()
notion image
notion image

⽂字测量难点之⼀:居中的纵向测量

  • ⽅式⼀:Paint.getTextBounds() 之后,使⽤ (bounds.top + bounds.bottom) / 2
    • 这种方式适合静态文字,如果文字会变,那么bounds.topbounds.bottom会发生变化,文字看起来就会出现跳动的现象
  • ⽅式⼆:Paint.getFontMetrics() 之后,使⽤ (fontMetrics.ascend + fontMetrics.descend) / 2
    • 这种方式就适合动态文字:
 

⽂字测量难点之⼆:左对⻬

  • ⽤ getTextBounds() 之后的 left 来计算
notion image
notion image
💡
这里看似还没有完全对齐,是因为字体设计时的左边有一定的宽度,系统无法干预,上层尽最大的力也只能这样了。

⽂字测量难点之三:换⾏

  • android.graphics.Paint#breakText(java.lang.CharSequence, int, int, boolean, float, float[]) 来计算
     
    Xfermode 完全使用解析范围裁切和⼏何变换
    Loading...
    shuouyang
    shuouyang
    android开发 ReactNative开发 小程序开发
    最新发布
    AOSP 环境搭建
    2025-3-29
    View 绘制流程-源码解析
    2025-3-12
    HTTP
    2025-3-4
    JVM 虚拟机
    2025-2-28
    蓝牙-BLE-基础
    2025-2-28
    从 OkHttp 的原理来看 HTTP
    2025-2-19
    公告
    🎉热点信息🎉
    --- 1 ---
    Jet Brains 推出新的跨平台支持 Kotlin MultiPlatform
    --- 2 ---
    新的小巧便捷的依赖注入框架 Koin
    --- 3 ---
    新一代 API 查询语言 GraphQL