我正在运行时构建一个将放入TextView中的文本。
这个文本由不同大小的字体组成。
我必须计算这个文本的像素宽度。
我尝试使用Paint.measureText,但它没有考虑到不同的字体大小。
如何计算真实的宽度?
这是一个例子:
在这个例子中,如果我将相对大小设为 "2f" 或者 "3f"(例如),返回的 "MeasureText" 总大小相同。
谢谢。
这是一个例子:
LinearLayout text = (LinearLayout) findViewById(R.id.LinearLayout);
SpannableStringBuilder str = new SpannableStringBuilder("0123456789");
str.setSpan(new RelativeSizeSpan(2f), 3, 6, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
TextView tmp = new TextView(this);
tmp.setText(str,BufferType.SPANNABLE);
text.addView(tmp);
Float dim = tmp.getPaint().measureText(str, 0, str.length());
在这个例子中,如果我将相对大小设为 "2f" 或者 "3f"(例如),返回的 "MeasureText" 总大小相同。
谢谢。