使用 Paint.getTextBounds() 計(jì)算出文字的顯示區(qū)域
然后計(jì)算出文字的繪制位置日月,從而讓文字上下居中
這種居中算法的優(yōu)點(diǎn)是应狱,可以讓文字精準(zhǔn)地居中坝初,分毫不差
image.png
最開始使用了公式
y = middle + (bound.bottom - bound.top)/2
結(jié)果
image.png
小寫的 j 特別靠下
原因是 bound的起始位置是 baseline, 而在bound.top不為0時(shí)凡伊,中心線的偏移量應(yīng)該是
bound.top + (bound.bottom - bound.top)/2 -> (bound.bottom + bound.top)/2
這個(gè)偏移量是相對(duì) baseline 的唧席,所以它是一個(gè)負(fù)數(shù)
y = middle - (bound.bottom + bound.top)/2