Android测量字符串所占UI的大小

来源:互联网 发布:iphone7连接电脑软件 编辑:程序博客网 时间:2024/05/20 13:15


public static Point MeasureString(Context context, String text, float fontSize, int widthMeasureSpec, int heightMeasureSpec){int width = 0;int height = 0;if (null == context || null == text || text.isEmpty() || 0 == fontSize){return null;}TextView tv = new TextView(context);tv.setText(text);// 待测文本tv.setTextSize(fontSize);// 字体if (LayoutParams.WRAP_CONTENT != widthMeasureSpec && LayoutParams.MATCH_PARENT != widthMeasureSpec) {tv.setWidth(widthMeasureSpec);// 如果设置了宽度,字符串的宽度则为所设置的宽度}if (LayoutParams.WRAP_CONTENT != heightMeasureSpec && LayoutParams.MATCH_PARENT != heightMeasureSpec) {tv.setHeight(heightMeasureSpec);}tv.setSingleLine(false);// 多行tv.measure(LayoutParams.WRAP_CONTENT, LayoutParams.MATCH_PARENT);width = tv.getMeasuredWidth();height = tv.getMeasuredHeight();Point point = new Point();point.x = width;point.y = height;return point;}

测试

StringUtils.MeasureString(this, "Hello world!\nabc\ndef", 30, LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);StringUtils.MeasureString(this, "Hello world!\nabc", 30, 100, LayoutParams.WRAP_CONTENT);


0 0
原创粉丝点击