Android UI中TextView的使用方法

作者:xiaobojava 时间:2022-07-04 19:33:45 

Android UI中TextView的使用方法

一、TextView不同区域设置颜色,大小、点击事件


String msg = getResources().getString(R.string.school_roll_auth);
   SpannableStringBuilder style = new SpannableStringBuilder(msg);
   // 设置字体颜色
   style.setSpan(
       new ForegroundColorSpan(getResources().getColor(
           R.color.tv_color_99)), 0, msg.length() - 5,
       Spannable.SPAN_EXCLUSIVE_INCLUSIVE);
   style.setSpan(
       new ForegroundColorSpan(getResources().getColor(
           R.color.text_blue)), msg.length() - 5, msg.length(),
       Spannable.SPAN_EXCLUSIVE_INCLUSIVE);
   // 设置字体背景色
   style.setSpan(
       new BackgroundColorSpan(getResources().getColor(
           R.color.bg_common)), msg.length() - 5, msg.length(),
       Spannable.SPAN_EXCLUSIVE_INCLUSIVE);
   // 设置可点击部分
   style.setSpan(new ClickableSpan() {

@Override
     public void onClick(View widget) {
       //do Click ....
     }

@Override
     public void updateDrawState(TextPaint ds) {
       super.updateDrawState(ds);
       ds.setUnderlineText(false);
       ds.clearShadowLayer();
     }

}, msg.length() - 5, msg.length(), Spannable.SPAN_EXCLUSIVE_INCLUSIVE);
   tv_school_roll_msg.setText(style);
   // 此方法在需要响应用户事件时使用,如点击一个电话号码就跳转到拨号页面。如果不执行这个方法是不会响应事件的,即便文本看着已经是下划线蓝色字了。
   tv_school_roll_msg.setMovementMethod(LinkMovementMethod.getInstance());

//设置字体不同大小
SpannableStringBuilder sb = new SpannableStringBuilder(numText);

sb.setSpan(new AbsoluteSizeSpan(App.getInstance().getResources()
         .getDimensionPixelSize(R.dimen.text_size_24)), 0,
         income.indexOf(".") + 1, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
     sb.setSpan(new AbsoluteSizeSpan(App.getInstance().getResources()
         .getDimensionPixelSize(R.dimen.text_size_16)),
         income.indexOf(".") + 1, income.length(),
         Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
     view.setText(sb);

 注:Spannable.SPAN_EXCLUSIVE_EXCLUSIVE参数是对区域的说明,左包含,右不包含 SpannableStringBuilder的append方法


SpannableStringBuilder sb = new SpannableStringBuilder(num);
SpannableStringBuilder sbUnitName = sb.append("元");
sbUnitName.setSpan(new AbsoluteSizeSpan(getResources().getDimensionPixelSize(floatSizeResourcesId)), num.length() - 1, num.length() + unitName.length(),Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);

 append之后数符索引不是从0开始,是从原始字符开始

如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

来源:http://zmx.iteye.com/blog/2205187

标签:Android,TextView
0
投稿

猜你喜欢

  • C# 拼图魔方小游戏

    2023-10-27 20:41:22
  • Java开发Oracle数据库连接JDBC Thin Driver 的三种方法

    2022-05-08 09:40:50
  • AsyncTask官方文档教程整理

    2023-07-31 20:25:08
  • Java流程控制break和continue

    2023-06-16 09:49:54
  • Java 程序设计总复习题(java基础代码)

    2022-05-11 07:02:31
  • springMVC+velocity实现仿Datatables局部刷新分页方法

    2022-06-20 01:05:22
  • WPF实现手风琴式轮播图切换效果

    2022-01-24 13:49:26
  • 关于StringUtils.isBlank()的使用及说明

    2022-06-04 00:52:24
  • 浅谈java中异常抛出后代码是否会继续执行

    2023-01-23 18:37:45
  • 详解Springboot之Logback的使用学习

    2023-08-11 23:51:12
  • 详解JDK中ExecutorService与Callable和Future对线程的支持

    2023-11-25 07:39:07
  • springboot中redis正确的使用详解

    2021-12-24 02:39:17
  • android仿iphone主题效果的主菜单

    2023-04-29 03:56:35
  • 使用IntelliJ IDEA 配置安卓(Android)开发环境的教程详解(新手必看)

    2021-10-22 19:11:28
  • 详解Java豆瓣电影爬虫——小爬虫成长记(附源码)

    2023-10-29 17:45:17
  • C#利用Windows自带gdi32.dll实现抓取屏幕功能实例

    2023-04-10 00:37:18
  • springboot中@Async默认线程池导致OOM问题

    2022-12-19 20:07:01
  • Java实现字符串匹配的示例代码

    2023-04-17 05:24:35
  • 利用POI生成EXCEL文件的方法实例

    2023-11-23 21:44:14
  • Java关键字instanceof的两种用法实例

    2023-07-31 06:24:50
  • asp之家 软件编程 m.aspxhome.com