我们正在开发一款化学 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/