有的时候可能只想用一个textview来表示文字,但文字里肯定有分不同内容的东西,需要用不同的颜色、样式来表示,这个时候,就需要用到SpannableString对象来处理。

mTextView = (TextView)findViewById(R.id.test);
SpannableString tSS = new SpannableString(“SpannableString学习中”);
tSS.setSpan(new BackgroundColorSpan(Color.RED), 0, 2, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); //红色高亮
tSS.setSpan(new UnderlineSpan(), 15, 18,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); //下划线
tSS.setSpan(new StyleSpan(android.graphics.Typeface.BOLD_ITALIC), 2, 5, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); //斜体
mTextView.setText(tSS);

关键方法:
public void setSpan (Object what, int start, int end, int flags)
主要是start跟end
start是其实位置,无论中英文,都算一个。从0开始计算起。end是结束位置,所以处理的文字,包含开始位置,但不包含结束位置。
代码其实不复杂,只是记住这种解决方案,下次再碰到记起要用什么就行。

更多相关文章

  1. Google地图开发应用(一)
  2. android中自定义标签ImageButton
  3. Android(安卓)P系统设置之默认打开定位开关(默认使用位置服务)
  4. android 之popupWindow 在指定位置上的显示
  5. PopWindow Android(安卓)7.0 位置显示不准确解决办法
  6. RadioGroup没有文字只显示图片,图片居中问题
  7. Android(安卓)Material Design 中的CorrdinatorLayout使用详解
  8. cocos2d-js hello world
  9. ListView特效2(列表拖拽)

随机推荐

  1. Android Hilt
  2. ionic build android时gradle错误
  3. Android 使用自定义View画圆
  4. Translation001——android
  5. Android MVC模式你真的明白了吗??
  6. Android(安卓)2016新技术
  7. android 控件抖动
  8. Android GreenDAO ORM的使用(一) 生成DAO
  9. Android:Material Design - Style - Colo
  10. Android(安卓)的RIL驱动模块