测量字符串宽高

1.宽度测量是比较简单的,直接使用 float textWidht=mPaint.measureText("加入购物车");返回float类型的值即为字符串宽度值
2.高度测量

Paste_Image.png

top跟ascent之间会有一定的间隙,当精确度要求不高时可以使用

        Rect rect = new Rect();
        String s="加入购物车";
        mPaint.getTextBounds(s,0,s.length(),rect);//将字符串的长宽信息保存在rect里
        int widht=rect.width();//字符串宽度
        int height=rect.height();//字符串高度

1.基准点是baseline
2.ascent:是baseline之上至字符最高处的距离,为负值
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为起始点的横坐标,注意y为baseline的纵坐标,而不是起始点的纵坐标

//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);
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容