Android drawText获取text宽度的三种方式 .

来源:互联网 发布:大唐移动面试知乎 编辑:程序博客网 时间:2024/06/05 22:48

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

0 0