Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/193.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何使用TextAppearanceSpan_Android_Textview - Fatal编程技术网

Android 如何使用TextAppearanceSpan

Android 如何使用TextAppearanceSpan,android,textview,Android,Textview,我可以使较小的最后2个数字,但我希望他们显示顶部,如下图所示 TextView TV = (TextView)findViewById(R.id.txt); Spannable WordtoSpan = new SpannableString("13.500,27"); WordtoSpan.setSpan( new TextAppearanceSpan(null, 0, 12, null, null), WordtoSpan.length()-2, WordtoSpan.l

我可以使较小的最后2个数字,但我希望他们显示顶部,如下图所示

TextView TV = (TextView)findViewById(R.id.txt);

Spannable WordtoSpan = new SpannableString("13.500,27");        

WordtoSpan.setSpan( new TextAppearanceSpan(null, 0, 12, null, null), WordtoSpan.length()-2, WordtoSpan.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);    
TV.setText(WordtoSpan);
谢谢塔哈

编辑:

您可以使用
SuperscriptSpan()

增加字体大小以查看效果


试试这个 除了将上标文本附加到原始的spannalbe字符串之外,我没有找到任何其他方法

为SpannableStringBuilder应用所需的任何跨度

  SpannableStringBuilder builder=new SpannableStringBuilder("13.500,");
  builder.append(Html.fromHtml("X<sup>27</sup>"))
  SpannableStringBuilder builder=new SpannableStringBuilder("13.500,");
  builder.append(Html.fromHtml("X<sup>27</sup>"))
public class SuperscriptSpan2 extends MetricAffectingSpan implements
            ParcelableSpan {
        public SuperscriptSpan2() {
        }

    public int getSpanTypeId() {
        return TextUtils.CAP_MODE_CHARACTERS;
    }

    public int describeContents() {
        return 0;
    }

    public void writeToParcel(Parcel dest, int flags) {
    }

    @Override
    public void updateDrawState(TextPaint tp) {
        tp.baselineShift += (int) (tp.ascent() / 1.25);
    }

    @Override
    public void updateMeasureState(TextPaint tp) {
        tp.baselineShift += (int) (tp.ascent() / 1.25);
    }
}