android - Android平台书写化学/数学方程的配套工具

标签 android eclipse

我们正在开发一款化学 Android 应用程序。为此,我们使用 Eclipse。

对于此应用程序,我们需要编写许多包含下标和上标支持的方程来显示化学式的文本。

例如:H2O、ZnCl2 应以正确的下标格式书写。怎么解决这个问题?

请回复。

最佳答案

您可以像这样使用SpannableStringBuilder..:-

TextView tv = (TextView)findViewById(R.id.mytext);//Your texView

        SpannableStringBuilder cs = new SpannableStringBuilder("H2O, ZnCl2");//Your suppose String
        cs.setSpan(new SubscriptSpan(), 1, 2, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);//Setting span index 
        cs.setSpan(new RelativeSizeSpan((float)0.75), 1, 2, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
        cs.setSpan(new SubscriptSpan(), 9, 10, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
        cs.setSpan(new RelativeSizeSpan((float)0.75), 9, 10, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
        tv.setText(cs);

如果您想要上标文本,只需将 SubscriptSpan 替换为 SuperscriptSpan 即可,如下所示。

TextView tv = (TextView)findViewById(R.id.mytext);

        SpannableStringBuilder cs = new SpannableStringBuilder("H2O, ZnCl2");
        cs.setSpan(new SuperscriptSpan(), 1, 2, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
        cs.setSpan(new RelativeSizeSpan((float)0.75), 1, 2, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
        cs.setSpan(new SuperscriptSpan(), 9, 10, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
        cs.setSpan(new RelativeSizeSpan((float)0.75), 9, 10, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
        tv.setText(cs);

希望这有帮助..

关于android - Android平台书写化学/数学方程的配套工具,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17485090/

相关文章:

android - 标准 Seekbar 的进度条不出现

java - Android - 使用 Google BooksAPI 返回一本书的 ID

在 Eclipse 中构建 Python GUI?

android - 如何在 ubuntu 的 eclipse Juno 中设置 NDK?

java - Eclipse 中的 M2E 给出了 maven-compiler-plugin 错误,但是 Maven 安装没问题

Java Arraylist 在 for 循环的每次迭代后都被重新初始化

安卓媒体播放器错误-1004 (ERROR_IO)

eclipse - M2Eclipse,META-INF/MANIFEST.MF

java - 安排对方法的调用?

java - 如何从 eclipse 添加到 svn 所有 *.class 文件