在做项目的时候,经常会遇到过一行文字有两种颜色。有时候直接会想到用多个TextView来实现。今天就介绍一下更为简单的方法,用一个TextView实现。

效果:

先看一下xml代码:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"tools:context=".MainActivity"><TextViewandroid:id="@+id/tv_msg"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_marginTop="20dp"android:text="Hello World!" /><TextViewandroid:id="@+id/textView1"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_marginTop="20dp"android:text="TextView" /><TextViewandroid:id="@+id/textView2"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_marginTop="20dp"android:text="TextView" /><TextViewandroid:id="@+id/textView3"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_marginTop="20dp"android:text="TextView" /><TextViewandroid:id="@+id/textView4"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_marginTop="20dp"android:text="TextView" /><TextViewandroid:id="@+id/textView5"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_marginTop="20dp"android:text="TextView" /><TextViewandroid:id="@+id/textView6"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_marginTop="20dp"android:text="TextView" /><TextViewandroid:id="@+id/textView7"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_marginTop="20dp"android:gravity="center"android:text="TextView" /><TextViewandroid:id="@+id/textView8"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_marginTop="20dp"android:text="TextView" /><TextViewandroid:id="@+id/textView9"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_marginTop="20dp"android:text="TextView" /></LinearLayout>

大家可以对应着布局中的id对应着看一下,文字设置:

//上图中的第一个TextView代码,字体颜色,为文字设置颜色

String strMsg = "今天<font color=\"#00ff00\">天气不错</font>";
tv_msg.setText(Html.fromHtml(strMsg));

//上图中的第二个TextView代码,字体,用Html的方式格式化字体,是不支持用size属性设置字体的大小的,只能使用标签进行格式化。小字体标签可以嵌套,会显示小的字体

String str1 = "今天<font color= \"#00ff00\"><small>天气不错</small></font>";
textView1.setText(Html.fromHtml(str1));

//上图中的第三个TextView代码,字体,大字体标签可以嵌套,会显示大的字体

String str2 = "今天<font color=\"#00ff00\"><big>天气不错</big></font>";
textView2.setText(Html.fromHtml(str2));

//上图中的第四个TextView代码,字体,两个小字体标签可以嵌套,会显示更小的字体

String str3 = "今天<font color = \"#00ff00\"><small><small>天气不错</small></small></font>";
textView3.setText(Html.fromHtml(str3));

//上图中的第五个TextView代码,字体,两个大字体标签可以嵌套,会显示更大的字体

String str4 = "今天<font color=\"#00ff00\"><big><big>天气不错</big></big></font>";
textView4.setText(Html.fromHtml(str4));

//上图中的第六个TextView代码,上边的情况都是固定字符的情况,那如果遇到变量该怎么办呢?其实也很简单。遇到变量的情况

String str5 = "天气不错";
textView5.setText(Html.fromHtml("今天" + "<font color=\"#00ff00\">" + str5 + "</font>"));

//上图中的第七个TextView代码,一段文字设置两种不同的颜色

String str6 = "<font color=\"#00ff00\">今天</font><font color=\"#0000ff\">天气不错</font>";
textView6.setText(Html.fromHtml(str6));

//上图中的第八个TextView代码,一个Text中可以让字体显示成两行,加入<br>标签

String str7 = "<font color=\"#00ff00\">今天</font><br><font color=\"#0000ff\">天气不错</font>";
textView7.setText(Html.fromHtml(str7));

// 上图中的第九个TextView代码,使用SpannableString实现不同字体

SpannableString spannableString = new SpannableString("今天天气不错");
spannableString.setSpan(new AbsoluteSizeSpan(60), 2, 4, Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
spannableString.setSpan(new ForegroundColorSpan(Color.parseColor("#ffffff")), 2, 4, Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
spannableString.setSpan(new ForegroundColorSpan(Color.parseColor("#00ff00")), 5, spannableString.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
spannableString.setSpan(new BackgroundColorSpan(Color.parseColor("#999999")), 0, spannableString.length(), Spanned.SPAN_INCLUSIVE_INCLUSIVE);
textView8.setText(spannableString);

了解更多SpannableString知识,可查看以下文档:

https://blog.csdn.net/jdsjlzx/article/details/19122103

https://blog.csdn.net/zuo_er_lyf/article/details/80340819

https://blog.csdn.net/lukejunandroid/article/details/25892737

源码下载:

https://download.csdn.net/download/android157/11226092

Android开发:一个TextView中设置文字不同字体大小和颜色的2种高效方法相关推荐

  1. Android 一个TextView中设置文字不同字体大小和颜色的最完整方法

    在做项目的时候,经常会遇到过一行文字有两种颜色.有时候直接会想到用多个TextView来实现.今天就介绍一下更为简单的方法,用一个TextView实现. 效果: 这几个都实现了一行字有不同颜色,还有两 ...

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

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

  3. html页面表格字体,如何在移动设备html页面的表格单元格中设置相同的字体大小...

    我在移动设备上进行字体呈现时遇到了问题. 我有一个简单的表格宽度设置固定为800像素,通用尺寸为今天的手机.如何在移动设备html页面的表格单元格中设置相同的字体大小 我的单元格中的文字都使用相同的h ...

  4. win7计算机字体大小怎么设置,新手使用win7系统中设置桌面的字体大小的方法

    win7的系统是现在很多的小伙伴安装系统的时候最好的最好的选择,那在win7电脑中对于新手来说一些操作还是不知道的,有疑问对于字体大小的是怎么自己修改字体还有文字的大小是怎么实现的呢,对于这个问题今天 ...

  5. 一个textView中的文字设置成两种颜色

    使用Spannablestring和ForegroundColorSpan. SpannableString string2 = new SpannableString("自助导入会员和连续 ...

  6. Windows XP系统中 设置DPI缩放 字体大小的简单方法

    首先在桌面的空白处右键单击,从下拉菜单中选择属性选项. 接着会弹出属性对话框,在弹出的属性对话框中切换到外观选项卡. 在该选项卡中找到字体大小选项,从下拉菜单中选择合适的字体后,点击应用. 这个时候你 ...

  7. Android开发:TextView如何让文字垂直显示

    在应用开发中,大家会遇到一个问题,有时候需要垂直显示一段文字,下面我就告诉大家如何做到,不需要自定义textview. 只需要设置两个属性,就是layout_width设置为wrap_content, ...

  8. Eclipse中设置jsp文件 字体大小

    Window--Preferences--General--Colors and Fonts (点开Basic进行设置)

  9. dw html设置字体颜色,字体颜色怎么设置-dreamweaver编辑字体大小、颜色样式方法...

    1.在字符之间添加空格 要插入连续空格,在"插入"栏中,选择"字符",然后单击"非换行的空格"图标.或者按 Control+Shift+空格 ...

  10. Android利用SpannableStringBuilder设置TextView中部分文字的颜色...

    原文:android - SpannableString或SpannableStringBuilder以及string.xml文件中的整型和string型代替 背景介绍 在开发应用过程中经常会遇到显示 ...

最新文章

  1. 因链接静态库先后顺序不正确,引起符号定义找不到
  2. 设计模式中遵循的原则:单一职责、开发-封闭、依赖倒转
  3. 【控制】麦克纳姆轮 Mecanum 小车模型分析
  4. Android应用程序安装过程源代码分析(1)
  5. 159. Leetcode 122. 买卖股票的最佳时机 II (贪心算法-股票题目)
  6. mug网络用语_下面这些短语你尽管翻译,全对算我输!
  7. Dubbo接口测试方法及步骤
  8. C++虚函数表和多态
  9. iPhone清理喇叭灰尘_手机喇叭用久了灰尘多,与其经常换手机,不如自己动手清理...
  10. 计算机桌面图标损坏,Excel图标变成这样如何恢复:excle图标损坏
  11. Java原生http请求调用企业微信api,获取打卡记录
  12. 四级网络工程师和四级信息安全工程师考试须知与学习方法
  13. Spring Configuration Check ----Unmapped Spring configuration files found.
  14. 面试官问:如何搭建测试环境?掌握这5种技能和知识就够了
  15. oracle数据库如何计算周数,“Oracle”数据库的“周数计算”
  16. 巴黎报纸对拿破仑的描述
  17. 【软件工程】三、软件开发过程
  18. mysql数据库教学系统设计_MySQL-教学系统数据库设计
  19. PAMI2012跟踪算法TLD的配置(Tracking-learning-detection)
  20. 【信息科学技术与创新】 人类大脑中数据的产生,积累,增长 数据与信息 神经信息学

热门文章

  1. Jmeter遇到打不开的问题
  2. 1867. 最大数量高于平均水平的订单
  3. DAS Over FC 技术允许 ATTO 分解存储并完成 vSAN 认证套件
  4. gorm中一对一,多对多关系
  5. 人工智能(机器学习)学习路线
  6. 地理信息系统GIS--介绍
  7. (83)--用代码实现超越函数
  8. Lua 源码学习笔记(2)字符串
  9. kotlin之开发经验整理
  10. JAVA调用数据泵,oracle数据泵导入导出dmp文件语法