Android UI中TextView的使用方法
时间:2022-07-27
本文章向大家介绍Android UI中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开始,是从原始字符开始
如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- Angular应用的路由指令RouterLink
- ctfhub-信息泄泄露_备份文件下载
- Angular In-memory Web API使用介绍
- 攻防世界-php_rce
- 无法添加某个relationship给SAP CRM Product category的一个可能原因
- 记一次DataGuard SWITCHOVER_STATUS 状态为RESOLVABLE GAP的处理
- ABAP数据库表的元数据
- ctfshow-萌新赛
- VC++ libcurl FTP上传客户端程序
- Oracle RAC变更实验之修改11gR2+公网IP地址(网段不变)
- C# 纯控制台创建一个全屏窗口
- MySQL MHA部署添加Linux/Unix基本信息至Django中
- 记一次innobackupex导致的从库无法同步的问题
- mysqlbinlog命令详解记一次有函数的标量子查询导致的查询缓慢
- ctfshow红包题-web