我从json文件中恢复化学式,并以良好的方式编写它们(下标中有数字),我使用这种方法:
String s = item.get(NAME);
StringBuffer sb = new StringBuffer();
for (int i = 0; i < s.length(); i++) {
if (s.charAt(i) == '2' || s.charAt(i) == '3' || s.charAt(i) == '4'
|| s.charAt(i) == '5' || s.charAt(i) == '6') {
sb.append("<sub>").append(s.charAt(i)).append("</sub>");
} else {
sb.append(s.charAt(i));
}
}
name.setText(Html.fromHtml(sb.toString()));
它工作正常,但下标字母的字体大小与其他字母的字体大小相同。而且我希望它更小。 那么有没有办法改变单词中特定字母的大小?
感谢
答案 0 :(得分:3)
您可以使用AbsoluteSizeSpan执行此操作。 E.g:
Spannable span = new SpannableString(text);
span.setSpan(new AbsoluteSizeSpan(14, true), start, end, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
textView.setText(span, TextView.BufferType.SPANNABLE);
start
和end
定义要更改的字符范围。
答案 1 :(得分:1)
您可以使用<font size="number"><font>
,其中number表示您想要的文字大小。代码将以字符串形式工作,我已经尝试过了。
答案 2 :(得分:0)
根据 android.text.Html (在GrepCode上),您可以将<small>
用于较小的文字,因为<font>
仅支持颜色和面部属性。
例如 H 2 O
String s = "<b>H</b><small><sub>2</sub></small><b>O</b>";