【发布时间】:2015-10-28 17:30:36
【问题描述】:
我有一个 TextView,我在其中显示具有不同跨度大小的 SpannableString。我需要知道 SpannableString 中最后一个单词的确切高度,但我使用的方法弄错了。我做错了什么?
这是我正在使用的测试代码
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的翻译只是为了说明测量方法的高度结果)
【问题讨论】:
标签: android text spannablestring