码迷,mamicode.com
首页 > 移动开发 > 详细

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

时间:2015-07-16 11:30:50      阅读:137      评论:0      收藏:0      [点我收藏+]

标签:

    我们经常在做自定义控件的时候,有些控件是需要图文一起显示的,显示文字就肯定要用到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种计算方式

标签:

原文地址:http://www.cnblogs.com/liujianli405/p/4650547.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!