Android 如何测量拍边高度?
我有一个文本视图,其中显示了具有不同跨距大小的跨距栏。我需要知道SpannableString中最后一个单词的确切高度,但我使用的方法是错误的。我做错了什么 下面是我正在使用的测试代码Android 如何测量拍边高度?,android,text,spannablestring,Android,Text,Spannablestring,我有一个文本视图,其中显示了具有不同跨距大小的跨距栏。我需要知道SpannableString中最后一个单词的确切高度,但我使用的方法是错误的。我做错了什么 下面是我正在使用的测试代码 SpannableStringBuilder spannableString = new SpannableStringBuilder("Some Text Some Text Some Text Some Text Some Text Some Text Some Text Some Text Some
SpannableStringBuilder spannableString = new SpannableStringBuilder("Some Text Some Text Some Text Some Text Some Text Some Text Some Text Some Text Some Text");
spannableString.setSpan(new AbsoluteSizeSpan(10, true), 0, spannableString.length() / 3, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
spannableString.setSpan(new AbsoluteSizeSpan(15, true), spannableString.length()/3, 2 * spannableString.length()/3, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
spannableString.setSpan(new AbsoluteSizeSpan(20, true), 2 * spannableString.length() / 3, spannableString.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
surfaceView.setTranslationY(measureSpannableHeight());
private int measureSpannableHeight() {
StaticLayout staticLayout = new StaticLayout(spannableString, new TextPaint(), 480, Layout.Alignment.ALIGN_NORMAL, 1, 0, false);
return staticLayout.getHeight();
}
(surfaceview的翻译仅用于说明测量方法的高度结果)构造绘制对象,在为绘制设置等效跨距属性后,可以使用以下方法测量单词高度
Paint mTextPaint = new Paint();
mTextPaint.setTextSize(20) // your span size
mTextPaint.setTypeface(typeface)
单词的维度将保持在此矩形中
Rect textBounds = new Rect();
int startIndex = spannableString.length() - 4; //length of your last word as start and end indices.
int endIndex = spannableString.length();
mTextPaint.getTextBounds(spannableString, startIndex, endIndex, textBounds);
int height = textBounds.height();