Android UI中TextView的使用方法

发布时间 - 2026-01-11 03:16:58    点击率:

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开始,是从原始字符开始

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


# Android  # TextView  # TextView的使用方法  # TextView实例详解  # Android TextView 去掉自适应默认的fontpadding的实现方法  # Android为TextView添加字体库和设置描边的方法  # Android TextView对齐的两种方法  # Android实现带动画效果的可点击展开TextView  # Android自定义textview实现竖直滚动跑马灯效果  # Android自定义TextView实现drawableLeft内容居中  # Android中TextView显示圆圈背景或设置圆角的方法  # 是从  # 看着  # 如有  # 下划线  # 希望能  # 谢谢大家  # 跳转到  # 不包含  # 背景色  # 疑问请  # Spannable  # color  # getColor  # length  # SPAN_EXCLUSIVE_INCLUSIVE  # public  # Override  # onClick  # void  # BackgroundColorSpan 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 如何为不同团队 ID 动态生成多个非值班状态按钮  Laravel如何使用Guzzle调用外部接口_Laravel发起HTTP请求与JSON数据解析【详解】  如何快速搭建高效服务器建站系统?  详解Nginx + Tomcat 反向代理 负载均衡 集群 部署指南  Laravel怎么实现搜索功能_Laravel使用Eloquent实现模糊查询与多条件搜索【实例】  如何快速上传自定义模板至建站之星?  怎么用AI帮你设计一套个性化的手机App图标?  HTML透明颜色代码在Angular里怎么设置_Angular透明颜色使用指南【详解】  Win11搜索栏无法输入_解决Win11开始菜单搜索没反应问题【技巧】  Laravel Eloquent关联是什么_Laravel模型一对一与一对多关系精讲  网站页面设计需要考虑到这些问题  laravel怎么用DB facade执行原生SQL查询_laravel DB facade原生SQL执行方法  Laravel怎么实现模型属性转换Casting_Laravel自动将JSON字段转为数组【技巧】  制作公司内部网站有哪些,内网如何建网站?  Laravel Seeder填充数据教程_Laravel模型工厂Factory使用  HTML透明颜色代码怎么让图片透明_给img元素加透明色的技巧【方法】  手机网站制作与建设方案,手机网站如何建设?  在线制作视频的网站有哪些,电脑如何制作视频短片?  Laravel如何配置.env文件管理环境变量_Laravel环境变量使用与安全管理  EditPlus中的正则表达式 实战(4)  Laravel如何实现数据导出到CSV文件_Laravel原生流式输出大数据量CSV【方案】  购物网站制作费用多少,开办网上购物网站,需要办理哪些手续?  laravel怎么使用数据库工厂(Factory)生成带有关联模型的数据_laravel Factory生成关联数据方法  Laravel如何处理跨站请求伪造(CSRF)保护_Laravel表单安全机制与令牌校验  独立制作一个网站多少钱,建立网站需要花多少钱?  Python文本处理实践_日志清洗解析【指导】  Laravel数据库迁移怎么用_Laravel Migration管理数据库结构的正确姿势  浅谈redis在项目中的应用  JS中对数组元素进行增删改移的方法总结  nodejs redis 发布订阅机制封装实现方法及实例代码  Python3.6正式版新特性预览  如何获取免费开源的自助建站系统源码?  javascript中的数组方法有哪些_如何利用数组方法简化数据处理  如何选择PHP开源工具快速搭建网站?  Python结构化数据采集_字段抽取解析【教程】  制作ppt免费网站有哪些,有哪些比较好的ppt模板下载网站?  Laravel 419 page expired怎么解决_Laravel CSRF令牌过期处理  Laravel如何实现模型的全局作用域?(Global Scope示例)  广州网站制作公司哪家好一点,广州欧莱雅百库网络科技有限公司官网?  Java解压缩zip - 解压缩多个文件或文件夹实例  Laravel如何处理文件上传_Laravel Storage门面实现文件存储与管理  使用PHP下载CSS文件中的所有图片【几行代码即可实现】  北京专业网站制作设计师招聘,北京白云观官方网站?  香港网站服务器数量如何影响SEO优化效果?  谷歌浏览器下载文件时中断怎么办 Google Chrome下载管理修复  jimdo怎样用html5做选项卡_jimdo选项卡html5实现与切换效果【指南】  使用豆包 AI 辅助进行简单网页 HTML 结构设计  如何在阿里云完成域名注册与建站?  Laravel Octane如何提升性能_使用Laravel Octane加速你的应用  Android GridView 滑动条设置一直显示状态(推荐)