android textView 和 spannable 获取字号

android textView and spannable get a word size

我的应用程序中有一个文本视图,单击它会改变单词的大小,我的问题是,如果我单击一次这个单词,它会变大,如果我再次单击,它的大小会变成两倍。我需要在第二次点击时将它变小,方法是在变大之前检查这个可跨越的单词的文本大小。

    private ClickableSpan getClickableSpan(final String word,final int start, final int end) {
    return new ClickableSpan() {
        final String mWord;
        {
            mWord = word;
        }

        @Override
        public void onClick(View widget) {

            TextView tv = (TextView) widget;
            // TODO add check if tv.getText() instanceof Spanned
            Spanned s = (Spanned) tv.getText();

            int start = s.getSpanStart(this);
            int end = s.getSpanEnd(this);
            Log.d("Sd", "onClick [" + s.subSequence(start, end) + "]");
            spans.setSpan(new RelativeSizeSpan(3f), start, end, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);//check the size before make it bigger how to do so??

            Toast.makeText(widget.getContext(), s.subSequence(start, end), Toast.LENGTH_SHORT)
         .show();
        }
          @Override
        public void updateDrawState(TextPaint ds) {
            super.updateDrawState(ds);
            ds.setUnderlineText(false);
            ds.setColor(Color.WHITE);

        }
    };
}

我会使用一个简单的布尔值 isBig 并检查它。

    if (isBig) {
        // make textview smaller
        isBig = false;
    } else {
       // make textview bigger
       isBig = true;
    }