【发布时间】:2014-06-19 03:32:28
【问题描述】:
我正在开发一个安卓项目,我想渲染一些化学公式。
我写了下面的代码,得到了下面的结果。
我创建了一个自定义字符串并在文本视图中显示它。
但我的问题是:这是最好的方法吗?还有其他方法可以处理吗?
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);
【问题讨论】:
-
您找到了一个很好的解决方案,该解决方案对于许多化学公式来说很容易实现。在 Android 上,您可以在 Canvas、LaTeX、矢量图形(通过库)和许多其他方法上使用特殊的自定义字体来实现相同的结果,但我最喜欢您的解决方案(假设您没有任何其他我没有考虑到的特殊要求)。
-
谢谢!很好的答案:) SpannableString spannableString = new SpannableString( Html.fromHtml("C10H14N2") ); spannableString.setSpan(new RelativeSizeSpan(0.6f), 1, 3, 0); spannableString.setSpan(new RelativeSizeSpan(0.6f), 4, 6, 0); spannableString.setSpan(new RelativeSizeSpan(0.6f), 7, 8, 0);