Android上的化学公式

str*_*s95 9 string android textview

我正在开发一个Android项目,我想渲染一些化学公式.

我写了下面的代码,得到了以下结果.

我创建一个自定义字符串并在textview中显示它.

但我的问题是:这是最好的方法吗?还有另一种方法可以解决这个问题吗?

str = new SpannableString(Html.fromHtml("2H<sup>+</sup> + So<sub size = 2>4</sub><sup size = 2>2-</sup> --> H<sub size =2>2</sub>So<sub size = 2>4</sub>"));
ss1.setSpan(new RelativeSizeSpan(0.6f), 2,3, 0); // set size
ss1.setSpan(new RelativeSizeSpan(0.6f), 8,11, 0); // set size
ss1.setSpan(new RelativeSizeSpan(0.6f), 17,18, 0); // set size
ss1.setSpan(new RelativeSizeSpan(0.6f), 20,21, 0); // set size
TempF.setText(ss1,TextView.BufferType.SPANNABLE);
Run Code Online (Sandbox Code Playgroud)

示例化学式

mat*_*ash 4

我认为没有更好的方法。

不幸的Html.fromHtml()是忽略<font size="n">标签,因此需要手动添加这些跨度,就像您所做的那样。