使用SpannableStringBuilder进行上标

时间:2017-09-28 15:26:27

标签: android string math spanned spannablestringbuilder

我正在制作数学工具,并且我的图形表示遇到了一些麻烦。

我试图上标一些字符串,我使用的方法是

    tV = (TextView) findViewById(R.id.textView);

    String textEAS;
    String textEBS;
    String textEXS;
    String textEYS;

    textEAS = "A";
    textEBS = "B";
    textEXS = "X";
    textEYS = "Y";

    int lengthA = textEAS.length();
    int lengthB = textEBS.length() + lengthA+3;
    int lengthX = textEXS.length() + lengthB + lengthA;
    int lengthY = textEYS.length();
    String textComb = ( textEBS + " * " + textEAS + textEXS + " = " + textEYS);



    SpannableStringBuilder cs = new SpannableStringBuilder(textComb);
    cs.setSpan(new SuperscriptSpan(), lengthB, lengthX, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
    cs.setSpan(new RelativeSizeSpan(0.75f), lengthB, lengthX, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);

    tV.setText(cs);

它工作正常并且输出文本像B * A ^ X = Y(上标x),但是当我向字符串textEXS添加多个字母时,一切都归结为一行上标已经丢失。

0 个答案:

没有答案