Android UI中TextView的使用方法
作者:xiaobojava 发布时间:2022-07-04 19:33:45
标签:Android,TextView
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
0
投稿
猜你喜欢
- 异常处理增强错误恢复能力是提高代码健壮性的最有力的途径之一,C语言中采用的错误处理方法被认为是紧耦合的,函数的使用者必须在非常靠近函数调用的
- 封面图下个季度的目标是把前端监控相关的内容梳理出来,梳理出来之后可能会在公司内部做个分享~Flutter应用程序既括代码也包括一些其他的资产
- 1. Java中程序的逻辑控制语句1.1顺序结构顺序结构比较简单,按照代码书写的顺序一行一行执行1.2分支结构1.2.1 switch语句这
- 字节流和字符流对于文件必然有读和写的操作,读和写就对应了输入和输出流,流又分成字节和字符流。1.从对文件的操作来讲,有读和写的操作——也就是
- 不同的浏览器会把cookie文件保存在不同的地方以下是C# WebBrowser控件cookies的存放路径C:\Users\{你的帐号名}
- 要求:1.配置文件的namespace名称空间指定为接口的全类名2.配置文件中的id唯一标识与接口中的方法对应(返回值类型对应,方法名对应,
- 前言最近有项目需要开发档案打包下载功能,其中包含很多大附件,项目使用minio存储且不在同一台服务器上,为了优化速度决定使用windows共
- 系统原来用的是BOSCH_BMA222的gsensor, 现在要求换成使用MMA7660,我们来看一下怎样增加驱动和调试过程。 1. 修改M
- 本文实例为大家分享了C#实现多个计时器记录不同定时时间的具体代码,供大家参考,具体内容如下1.定义Timer类、定义委托//定义Timer类
- Android application捕获崩溃异常怎么办?通用 application1、收集所有 avtivity 用于彻底退出应用2、捕
- 本文通过JavaMailSender实现邮箱注册验证中遇到的问题开始着手,给大家详细分析了其原理以及问题的解决办法。使用邮箱注册验证,我们需
- 问题:在用Java程序进行读写含中文的txt文件时,经常会出现读出或写入的内容会出现乱码。原因其实很简单,就是系统的编码和程序的编码采用了不
- 环境:maven+idea。1. 需要的jar包基本的spring和mybatis依赖包就不说了,在pom文件的build->plug
- 一、Android系统启动Android设备从按下开机键到桌面显示画面,大致过程如下图流程:开机显示桌面、从桌面点击 App 图标到 Act
- JDBC操作MySQL在实际的企业级开发环境中,如果数据规模特S别大,此时采用传统的SQL语句去处理的话一般需要分成很多批次处理,而且很容易
- 本文实例讲述了java实现的简单猜数字游戏代码。分享给大家供大家参考。具体代码如下:import java.util.InputMismat
- 本文介绍了spring整合JMS实现同步收发消息(基于ActiveMQ的实现),分享给大家,具体如下:1. 安装ActiveMQ注意:JDK
- 本文的目的是把json串转成map键值对存储,而且只存储叶节点的数据比如json数据如下:{responseHeader:{status:0
- 本文介绍了Android 实现截屏方式整理,分享给大家。希望对大家有帮助可能的需求:截自己的屏截所有的屏带导航栏截屏不带导航栏截屏截屏并编
- 具体代码如下所示:package com.example.studyapplication.fragment;import android.