0

アプリにテキストビューがあり、クリックすると単語のサイズが変更されます。この単語を 1 回クリックすると大きくなり、もう一度クリックするとサイズが 2 倍になるという問題があります。このスパン可能な単語のテキスト サイズを大きくする前に確認して、2 回目のクリックで小さくする必要があります。

    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 に答える