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