在同一个TextView里显示不同样式的字体

public void setSpan(Object what, int start, int end, int flags);

样式1:背景色、粗体、字体大小

  • 效果

  • Code

    TextView textView = (TextView) findViewById(R.id.text_view_font_1);
    Spannable string = new SpannableString("修改背景色、粗体、字体大小");
    // 背景色
    string.setSpan(new BackgroundColorSpan(Color.RED), 2, 5, Spannable.SPAN_INCLUSIVE_INCLUSIVE);
    // 粗体
    string.setSpan(new StyleSpan(Typeface.BOLD), 6, 8, Spannable.SPAN_INCLUSIVE_INCLUSIVE);
    // 字体大小
    string.setSpan(new AbsoluteSizeSpan(50), 11, 13, Spannable.SPAN_INCLUSIVE_INCLUSIVE);
    // 显示
    textView.setText(string);

样式2:斜体加粗

  • 效果

  • Code

    TextView textView = (TextView) findViewById(R.id.text_view_font_1);
    Spannable string = new SpannableString("Hello TextView");
    // 斜体加粗(中文斜体好像没有什么效果)
    string.setSpan(new StyleSpan(Typeface.BOLD_ITALIC), 0, 5, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
    textView.setText(string);

样式3:字体颜色

  • 效果

  • Code

    TextView textView = (TextView) findViewById(R.id.text_view_font_1);
    Spannable string = new SpannableString("设置红色字体");
    // 字体颜色
    string.setSpan(new ForegroundColorSpan(Color.RED), 2, 4, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
    textView.setText(string);

样式4:下划线

  • 效果

  • Code

    TextView textView = (TextView) findViewById(R.id.text_view_font_1);
    Spannable string = new SpannableString("带下划线的文字");
    string.setSpan(new URLSpan(""), 1, 4, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
    textView.setText(string);

样式5:字体宽度(设置字体宽度比)

  • 效果

  • Code

    TextView textView = (TextView) findViewById(R.id.text_view_font_1);
    Spannable string = new SpannableString("“胖”文字和“瘦”文字");
    string.setSpan(new ScaleXSpan(2.0f), 1, 2, Spannable.SPAN_INCLUSIVE_INCLUSIVE);
    string.setSpan(new ScaleXSpan(0.5f), 7, 8, Spannable.SPAN_INCLUSIVE_INCLUSIVE);
    textView.setText(string);

样式6:删除线

  • 效果

  • Code

    TextView textView = (TextView) findViewById(R.id.text_view_font_1);
    Spannable string = new SpannableString("把“删除”划掉");
    // 删除线
    string.setSpan(new StrikethroughSpan(), 2, 4, Spannable.SPAN_INCLUSIVE_INCLUSIVE);
    textView.setText(string);

样式7:前景色

  • 效果

  • Code

    TextView textView = (TextView) findViewById(R.id.text_view_font_1);
    Spannable string = new SpannableString("设置前景色为红色");
    // 前景色
    string.setSpan(new ForegroundColorSpan(Color.RED), 6, 7, Spannable.SPAN_INCLUSIVE_INCLUSIVE);
    textView.setText(string);

样式8:URL

  • 效果

  • Code

    TextView textView = (TextView) findViewById(R.id.text_view_font_1);
    final String contact = "Email: kongqw@foxmail.com\n" +
    "Phone: 188123456789\n" +
    "Fax: +47-12345678\n" +
    "HTTP: http://blog.csdn.net/q4878802";
    textView.setAutoLinkMask(Linkify.ALL); // or set 'android:autoLink' in layout xml
    textView.setText(contact);

最新文章

  1. DatatableToJson JsonToDatatable
  2. C#常用类库(100多个)
  3. https采集12306(复制)
  4. 常用机器视觉工具----图像分析工具(blob分析)
  5. Android 中沉浸式状态栏实现
  6. 操作SSIS之前的准备工作
  7. vimperator学习教程
  8. scala函数组合器
  9. 9.python的布尔类型与流程控制
  10. Java 之 网络编程
  11. 解决每次升级Xcode后三方插件失效问题
  12. curl获取http请求的状态码
  13. css属性之box-shadow
  14. C++中用rand()和srand()产生随机数方法介绍
  15. 深入Java单例模式(转)
  16. OKMX6Q libx264交叉编译
  17. spark2.2.1 sql001
  18. pThreads线程(二) 线程同步--互斥量/锁
  19. 查看sql语句加锁信息
  20. AngularJS driective 封装 自动滚动插件

热门文章

  1. [LeetCode] Shortest Completing Word 最短完整的单词
  2. Caffe+VS2015+python3的安装(基于windows)
  3. [JSOI2008]球形空间产生器
  4. [USACO13DEC]假期计划(黄金)Vacation Planning (gold)
  5. ●洛谷P3688 [ZJOI2017]树状数组
  6. 51 nod 1188 最大公约数之和 V2
  7. 51Nod 1555 布丁怪
  8. [bzoj4883][Lydsy2017年5月月赛]棋盘上的守卫
  9. 非Unicode编码的软件如何在Windows系统上运行
  10. Linux学习之CentOS(八)----详解文件的搜寻、查找(转)