通过SpannableStringBuilder来实现,它就像html里边的元素改变指定文字的文字颜色或背景色

public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);String str="这是设置TextView部分文字背景颜色和前景颜色的demo!";int bstart=str.indexOf("背景");int bend=bstart+"背景".length();int fstart=str.indexOf("前景");int fend=fstart+"前景".length();SpannableStringBuilder style=new SpannableStringBuilder(str); style.setSpan(new BackgroundColorSpan(Color.RED),bstart,bend,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);           style.setSpan(new ForegroundColorSpan(Color.RED),fstart,fend,Spannable.SPAN_EXCLUSIVE_INCLUSIVE); TextView tvColor=(TextView) findViewById(R.id.tv_color);tvColor.setText(style);}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.main, menu);return true;}}

  • AbsoluteSizeSpan(int size) ---- 设置字体大小,参数是绝对数值,相当于Word中的字体大小
  • RelativeSizeSpan(float proportion) ---- 设置字体大小,参数是相对于默认字体大小的倍数,比如默认字体大小是x, 那么设置后的字体大小就是x*proportion,这个用起来比较灵活,proportion>1就是放大(zoom in), proportion<1就是缩小(zoom out)
  • ScaleXSpan(float proportion) ---- 缩放字体,与上面的类似,默认为1,设置后就是原来的乘以proportion,大于1时放大(zoon in),小于时缩小(zoom out)
  • BackgroundColorSpan(int color) ----背景着色,参数是颜色数值,可以直接使用android.graphics.Color里面定义的常量,或是用Color.rgb(int, int, int)
  • ForegroundColorSpan(int color) ----前景着色,也就是字的着色,参数与背景着色一致
  • TypefaceSpan(String family) ----字体,参数是字体的名字比如“sans", "sans-serif"等
  • StyleSpan(Typeface style) -----字体风格,比如粗体,斜体,参数是android.graphics.Typeface里面定义的常量,如Typeface.BOLD,Typeface.ITALIC等等。
  • StrikethroughSpan----如果设置了此风格,会有一条线从中间穿过所有的字,就像被划掉一样

更多相关文章

  1. 关于android AbsSeekBar
  2. 2013最新Android常用的工具类整理
  3. 【Android(安卓)应用开发】Activity 状态保存 OnSaveInstanceSta
  4. Android之用HttpURLConnection参数以XML形式封装的部分关键代码
  5. android之各种布局控件和对话框
  6. Android(安卓)Retrofit网络框架 (一)
  7. Android(安卓)OTA升级包制作脚本详解(二,解压缩)
  8. android 更改TextView部分字体颜色、大小、背景
  9. android 带参数广播示例

随机推荐

  1. Android开源项目
  2. 解决Flutter 编译异常path_provider
  3. Android应用程序键盘(Keyboard)消息处理机
  4. Android中直接按路径读取properties文件
  5. 启动虚拟机出现cannot launch AVD in emu
  6. DSL element ‘android.dataBinding.enab
  7. 2011.07.11(2)——— android 自定义Notifi
  8. Android中获取网页表单中的数据
  9. android binder机制之--(我是binder)
  10. Android之手机屏幕朝向