Android TextView上标

时间:2013-12-15 17:02:05

标签: java android textview superscript spannable

所以我试图将superscipt /下标添加到TextView,基本上试图将一个分数显示为 1 / 2 。不知道我哪里出错,而且我是Android的新手,所以任何帮助都表示赞赏。谢谢!

SpannableStringBuilder numSpan = new SpannableStringBuilder(String.valueOf(num));
SpannableStringBuilder denSpan = new SpannableStringBuilder(String.valueOf(den));

numSpan.setSpan(new SuperscriptSpan(), 0, numSpan.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
denSpan.setSpan(new SubscriptSpan(), 0, denSpan.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);

outputText.setText(numSpan + "/" + denSpan, TextView.BufferType.SPANNABLE););

1 个答案:

答案 0 :(得分:12)

请尝试使用Html.fromHtml。简单而精确:

outputText.setText(Html.fromHtml("<sup>" + num + "</sup>/<sub>" + den + "</sub>"));

注意:您可能需要为textview指定一些高度,否则将剪切输出。

或者,你可以尝试这个,数字大小更小:

outputText.setText(Html.fromHtml("<sup><small>" + num + "</small></sup>/<sub><small>" + den + "</small></sub>"));