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中,则会起作用,比如:*/ }
设置文字突出变色显示
最新推荐文章于 2024-07-22 18:43:53 发布