频道栏目
IT货架 > > 正文
Android笔记 自定义控件时drawText字符串宽度的3种计算方式
网友分享于:Jan 1, 1970 8:00:00 AM    来源: IT货架   

标签:

    我们经常在做自定义控件的时候,有些控件是需要图文一起显示的,显示文字就肯定要用到drawText 方法,而drawText(str, x, y, paint)有两个参数x 和 y是绘制的坐标,我们必须确定这个坐标之后,才能知道从哪里绘制,有时候我们绘制完一个字符串,而想在这个字符串的后面重新进行一些绘制的时候,就需要重新获取绘制坐标,这个时候首先想到的就是得到前一个字符串的绘制宽度 + 前一个字符串的绘制坐标就可以推算我们现在绘制的坐标了。

String str = "hello"; canvas.drawText(str, x, y, mPaint); //1. 粗略计算文字宽度: float width = mPaint.measureText(str); //2. 计算文字的矩形,可以得到宽高: Rect rect = new Rect(); mPaint.getTextBounds(str, 0, str.length(), rect); int w = rect.width(); int h = rect.height(); //3. 精确计算文字的宽度: public static int getTextWidth(Paint mPaint, String str) { float iSum = 0; if(str != null && !str.equals("")) { int len = str.length(); float widths[] = new float[len]; paint.getTextWidths(str, widths); for(int i = 0; i < len; i++) { iSum += Math.ceil(widths[i]) } } return (int)iSum; }

 

Android笔记 自定义控件时drawText字符串宽度的3种计算方式

标签:

相关板块推荐 iPhone WindowsPhone

广告服务联系QQ:1134687142 | 网站地图

版权所有: IT货架- 内容来自互联网,仅供用于技术学习,请遵循相关法律法规. 京ICP备11030978号-1