測量字符串寬高

1.寬度測量是比較簡單的,直接使用 float textWidht=mPaint.measureText("加入購物車");返回float類型的值即為字符串寬度值
2.高度測量

Paste_Image.png

top跟ascent之間會有一定的間隙,當(dāng)精確度要求不高時可以使用

        Rect rect = new Rect();
        String s="加入購物車";
        mPaint.getTextBounds(s,0,s.length(),rect);//將字符串的長寬信息保存在rect里
        int widht=rect.width();//字符串寬度
        int height=rect.height();//字符串高度

1.基準(zhǔn)點(diǎn)是baseline
2.ascent:是baseline之上至字符最高處的距離,為負(fù)值
3.descent:是baseline之下至字符最低處的距離,為正值

精確測量

方法一

float textHeight=mPaint.descent()-mPaint.ascent();

方法二

Paint.FontMetrics fm = mPaint.getFontMetrics();
float textHight=fm.descent-fm.ascent;

使用:

canvas.drawText(String text, float x, float y,Paint paint)方法用來畫字符串,其中x為起始點(diǎn)的橫坐標(biāo),注意y為baseline的縱坐標(biāo),而不是起始點(diǎn)的縱坐標(biāo)

//mWidth是view的寬度,mHight是view的高度
mPaint.setTextSize(text_size);
float textWidth = mPaint.measureText("加入購物車");
canvas.drawText("加入購物車", (mWidht - textWidth) / 2, 
(mHeight - (mPaint.descent() - mPaint.ascent())) / 2 - mPaint.ascent(), mPaint);
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容