您的位置:首页 > 其它

设置文字突出变色显示

2017-05-26 15:19 92 查看
public class VideoHomeActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.video_home);

TextView view = (TextView) findViewById(R.id.text);
view.setText("设置TextView中的某个词突出显示");
setTextSpannable(view);
}

/**
* 设置TextView中的某个词突出显示
*
* @param textView
*/
private void setTextSpannable(TextView textView) {
String text = textView.getText().toString().trim();
int end = text.length();
Spannable textSpan = new SpannableStringBuilder(text);
//设置不突出显示的文字
textSpan.setSpan(new AbsoluteSizeSpan(20), 0, 3, Spannable.SPAN_INCLUSIVE_INCLUSIVE);
//设置突出显示的文字 字体大小
textSpan.setSpan(new AbsoluteSizeSpan(45), 2, end - 9, Spannable.SPAN_INCLUSIVE_INCLUSIVE);
//设置突出显示的文字 文字颜色
textSpan.setSpan(new ForegroundColorSpan(Color.RED), 2, end - 9, Spannable.SPAN_INCLUSIVE_INCLUSIVE);
//设置不突出显示的文字
textSpan.setSpan(new AbsoluteSizeSpan(20), end - 9, end, Spannable.SPAN_INCLUSIVE_INCLUSIVE);
textView.setText(textSpan);
}

/**
* setSpan(Object what, int start, int end, int flags)方法解析
what:这里传入样式,如:AbsoluteSizeSpan等
start:样式作用在文本的起始点(产生的作用包括该点,从0开始)
end:样式作用在文本的结束点(产生的作用不包括该点,从0开始)
flags:设置style是否包含start或者end
flags的选项在Spanned接口中,分别为:
SPAN_INCLUSIVE_EXCLUSIVE:包含start,不包含end
SPAN_INCLUSIVE_INCLUSIVE:start,end都包含
SPAN_EXCLUSIVE_EXCLUSIVE:start,end都不包含
SPAN_EXCLUSIVE_INCLUSIVE:start不包含,end包含

这里flags的作用,在SpannableString里基本没用,但是如果用在SpannableStringBuilder中,则会起作用,比如:*/
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  textview