0

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

    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);

        }
    };
}
4

1 回答 1

2

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

    if (isBig) {
        // make textview smaller
        isBig = false;
    } else {
       // make textview bigger
       isBig = true;
    }
于 2015-11-05T10:40:18.937 回答