Skip to content

简介

TextView显示次方方符号样式

比如显示带有平方的字符串kg/cm2,使用RelativeSizeSpan

SpannableString mUnitStr = new SpannableString("kg/cm2");
mUnitStr.setSpan(new RelativeSizeSpan(0.5f), 5, 6, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);//一半大小
mUnitStr.setSpan(new SuperscriptSpan(), 5, 6, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);   //上标

使用ClickableSpan

想获得点击效果,可以新建一个类继承ClickableSpan。 在updateDrawState(TextPaint ds)方法中可以设置颜色。这样同时实现了颜色和点击的需求。

    public abstract class ColorClickSpan extends ClickableSpan {
        private int color;

        public ColorClickSpan(int color) {
            this.color = color;
        }

        @Override
        public void updateDrawState(TextPaint ds) {
            if (ds != null) {
                ds.setColor(color);
                ds.setUnderlineText(true);
            }
        }
    }

使用时不要忘记setMovementMethod方法。

tv.setText(clickSpan);
tv.setMovementMethod(LinkMovementMethod.getInstance());