通过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);}}

项目中代码:

//textview 设置部分颜色public SpannableStringBuilder  setPartColorText(String str){//使用SpannableStringBuilder类SpannableStringBuilder spannableStringBuilder=new SpannableStringBuilder(str);//确定部分颜色的位置int start=str.indexOf(content);int end=start+content.length();//确定颜色为红色ForegroundColorSpan mForeColor=new ForegroundColorSpan(Color.RED);//setspanspannableStringBuilder.setSpan(mForeColor, start, end, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);return spannableStringBuilder;}

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----如果设置了此风格,会有一条线从中间穿过所有的字,就像被划掉一样

android 中TextView设置部分文字背景色和文字颜色相关推荐

  1. android中TextView设置字体竖直排列

    在实际开发中有需要设计文字的排列为竖向,那么在textview的属性中有这样一个属性android:ems="" 这里的ems表示一行显示的字符个数,那么我们只需要设置为:andr ...

  2. Android中TextView设置图标的方法

    TextView可以设置左上右下4个图标,分为:布局和代码2种方式. 布局方式 <TextViewandroid:id="@+id/txt_icon_test"android ...

  3. Android中TextView文本或富文本内容自行换行的问题

    Android中TextView设置文本或富文本的时候出现没有到头就换行的问题. 网上有很多相关内容. 但大多都是关于文本换行的情况, 对于有富文本内容的情况, 如设置Spanned对象的内容, 会出 ...

  4. android开发 textview设置超链接颜色和背景色(被点击时的背景色、高亮色)

    安卓中textview设置超链接的代码网上也有一大堆,这里就不说了. 先说说设置超链接的文字的颜色,先定义MyURLSpan类并继承URLSpan类并重写updateDrawState()方法,jav ...

  5. android 设置默认字体大小,Android中如何设置TextView的字体默认大小

    Android中如何设置TextView的字体默认大小 发布时间:2020-11-25 16:46:14 来源:亿速云 阅读:81 作者:Leah 本篇文章为大家展示了Android中如何设置Text ...

  6. Android中如何设置RadioButton在文字的右边,图标在左边

    本文转自94cool博客园博客,原文链接:http://www.cnblogs.com/94cool/p/5411953.html,如需转载请自行联系原作者Android中如何设置RadioButto ...

  7. android textview 字体颜色设置,Android textview 设置不同的字体大小和颜色

    在实际应用中,需要将一个字符串已不同的颜色,字体显示出来.当然完全可以通过不同textview拼接出来.也可以通过一个textview来展示. 步骤如下: 1.定义不同style . 不妨如下定义2个 ...

  8. android 浮动文字提示,怎么在Android中实现一个自由拖动并显示文字的悬浮框

    怎么在Android中实现一个自由拖动并显示文字的悬浮框 发布时间:2021-01-27 15:34:05 来源:亿速云 阅读:107 作者:Leah 今天就跟大家聊聊有关怎么在Android中实现一 ...

  9. Android中TextView加横线的属性

    textView.getPaint().setAntiAlias(true); // 抗锯齿textview.getPaint().setFlags(Paint.STRIKE_THRU_TEXT_FL ...

最新文章

  1. SpringBoot开发案例之整合Dubbo分布式服务
  2. USING HAVING
  3. Azure 上的网站如何识别不同国家和地区的用户
  4. python是面向对象还是过程_python编程:面向对象与过程是什么?
  5. Java对象的四种引用
  6. 计算机网络原理html,计算机网络原理与应用html..ppt
  7. hdu3790最短路问题
  8. gerrit 数据迁移_gerrit importer 使用方法
  9. 新硬盘显示有储存空间但无法分区_容量更足高速无忧,奥睿科迅龙V500 NVME硬盘体验...
  10. 《构建高性能WEB站点》读书笔记--第一章
  11. 403 for URL: http://www.terracotta.org/kit/reflector
  12. linux下如何查看网卡ip,linux下如何查看某个网卡当前使用的IP
  13. 监控流媒体服务器的搭建和使用
  14. [HDCTF2019]Maze
  15. [DeFRCN] Decouple Faster R-CNN for Few-Shot Object Detection(ICCV 2021)
  16. 一套鼠标、键盘多台电脑共享
  17. h3c服务器系统丢失,某局点H3C FlexServer R390服务器阵列失败数据丢失的经验案例...
  18. 2021年高处作业安装拆除维护证考试题库及安装拆除维护试题解析
  19. Android SDK版本以及对应的平台版本、版本名称
  20. Cannot commit, transaction is already closed

热门文章

  1. 基于STM32的SPI基本介绍
  2. stm32之 GPIO_Remap_SWJ_Disable之后无法使用swd下载 程序解决方法
  3. Shell脚本使用常见问题说明
  4. 区块链BaaS云服务(36)欧盟EBSI“使用场景”
  5. python——常用内置函数(enumerate、map、zip、eval)用法
  6. armv8/armv7中SCTLR的区别
  7. 2022-03-31 一些后续
  8. C++ const对象仅在文件内有效
  9. MoeCTF 2021Re部分------RedC4Bomb
  10. HWS计划 decryption 寒假逆向生涯(17/100)