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


猜你喜欢
- 本文介绍Android九宫格程序的设计代码,供大家参考,具体内容如下一.相关介绍(一)效果显示1.程序刚运行时的效果:2.在页面上点击选择并
- 阿里终面在线编程题,写出来与大家分享一下 有一个单向链表
- 本文实例讲述了C#邮件定时群发工具Atilia用法。分享给大家供大家参考。具体如下:一、Atilia可以做什么Atilia是一个基于命令行的
- 本文实例讲述了android编程实现sd卡读取数据库的方法。分享给大家供大家参考,具体如下:先在 Manifest 里添加权限:<us
- 前言作为一个写java的使用最多的轻量级框架莫过于spring,不管是老项目用到的springmvc,还是现在流行的springboot,都
- excel对于下拉框较多选项的,需要使用隐藏工作簿来解决,使用函数取值来做选项选项较少(一般少于5个):private static Dat
- 前言之前因为项目需求,其中使用到了图片的单击显示取消,图片平移缩放功能,昨天突然想再加上图片的旋转功能,在网上看了很多相关的例子,可是没看到
- 调用方法:/** * 点击量/月(年)Callable */ public void yearlyClickCallable() { //
- 本文为大家分享了经典24点纸牌益智游戏的具体实现方法,供大家参考,具体内容如下一.实验内容24点游戏是经典的纸牌益智游戏。常见游戏规则:从扑
- 本文实例展示的是一个自定义的定时器组件,有别于.NET Framework里面提供的几个Timer。首先说说该组件开发背景,发现现在手头上的
- 修改JSP,刷新一下JSP结果就报错,错误如下:严重: Servlet.service() for servlet jsp threw ex
- 本文实例讲述了C#使用foreach语句简单遍历数组的方法。分享给大家供大家参考。具体如下:using System;public clas
- 最近有个项目的几张表,数量级在千万以上,技术栈是SpringBoot+Mybatis-plus+MySQL。如果使用单表,在进行查询操作,非
- 一.NET Remoting 介绍简介.NET Remoting与MSMQ不同,它不支持离线可得,另外只适合.NET平台的程序进行通信。它提
- 什么是代理模式代理模式是开发中常见的一种设计模式,使用代理模式可以很好的对程序进行横向扩展。代理,顾名思义就是一个真实对象会存在一个代理对象
- 这几天在排查一个堆外内存泄漏的问题时看到很多人都提到了gperftools这个神器,想要尝试一下结果发现它对macOS的支持不太友好。而且大
- 最近帮朋友做了一个动画菜单,感觉有一定的实用价值,就在此给大家分享一下,先看看效果:实现思路:从图中可以看出,这三个(或更多,需要自己再实现
- 写在前面很久以前就听nice0e3师傅说打Fastjson可以试试C3P0,当时还不会java(虽然现在也没会多少)也就没有深究。最近调试F
- 前言如何下载和使用MyBatis Generator 插件,只说代码,不讲感情。如果有问题还请多多指点。开发环境开发工具:IntelliJ
- 老风格,废话不多说了,直接给大家贴android获取屏幕宽高的代码了。主要代码:package com.km.screeninfo; &nb