Android TextView 实现文字大小不同和文字颜色不同
效果图如下:
关键代码如下:
- StringBuffer sb = new StringBuffer();
- if(day > 0) {
- sb.append("<a href=\"1\">");
- sb.append(""+day);
- sb.append("</a>");
- sb.append(""+Global.getString(R.string.unit_Day2));
- }
- sb.append("<a href=\"2\">");
- if(hour > 9) {
- sb.append(" "+hour);
- } else {
- sb.append(" 0"+hour);
- }
- sb.append("</a>");
- sb.append(""+Global.getString(R.string.unit_Hour2));
- sb.append("<a href=\"3\">");
- if(minute > 9) {
- sb.append(" "+minute);
- } else {
- sb.append(" 0"+minute);
- }
- sb.append("</a>");
- sb.append(""+Global.getString(R.string.unit_Minute2));
- sb.append("<a href=\"4\">");
- if(second > 9) {
- sb.append(" " + second);
- } else {
- sb.append(" 0" + second);
- }
- sb.append("</a>");
- sb.append(""+Global.getString(R.string.unit_Second));
- int end = sb.length();
- SpannableString ss = new SpannableString(Html.fromHtml(sb.toString()));
- URLSpan[] urls = ss.getSpans(0, end, URLSpan.class);
- String resultStr = sb.toString();
- Pattern p_html = Pattern.compile(REGEX_HTML, Pattern.CASE_INSENSITIVE);
- Matcher m_html = p_html.matcher(resultStr);
- resultStr = m_html.replaceAll(""); // 过滤html标签
- SpannableString span = new SpannableString(resultStr);
- for (URLSpan url : urls) {
- int startIndex = ss.getSpanStart(url);
- int endIndex = ss.getSpanEnd(url);
- // 原字两倍大小
- span.setSpan(new AbsoluteSizeSpan(Global.dpToPx(24)), startIndex, endIndex,
- Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
- // 设置样式2
- span.setSpan(new ForegroundColorSpan(Color.WHITE),
- startIndex, endIndex,
- Spannable.SPAN_EXCLUSIVE_INCLUSIVE);
- // 设置样式3
- span.setSpan(new StyleSpan(Typeface.BOLD),
- startIndex, endIndex,
- Spannable.SPAN_EXCLUSIVE_INCLUSIVE);
- }
- mBottomLL2_Detail.setText(span);
说明:
1.主要原理为使用SpannableString来做多样式的String给TextView显示
2.用到<a href>标签的原因是为了做到国际化,因为span是按照index来多样化的,所以需要用href来标识多样化的index
Android TextView 实现文字大小不同和文字颜色不同的更多相关文章
- android Textview动态设置大小
import android.app.Activity; //import com.travelzen.tdx.BaseActivity; //import com.travelzen.tdx.uti ...
- [Android] TextView上同时显示图标和文字
需求场景 +----------------------------+ | Icon TEXT | +----------------------------+ 当然,可以使用LineLayout,包 ...
- android TextView 设置字体大小
package com.example.yanlei.yl4; import android.graphics.Color;import android.os.Bundle;import androi ...
- 自定义界面上绘制Text,可通过拖动控制文字大小及其位置
项目地址 最近项目上有个需求,需要在一块区域中显示文字,这块区域可以拖动,也可以通过拖拽右下角来改变大小,里面的文字大小要根据区域的大小进行自适应.刚开始觉得这个需求不难,只需要一个TextView就 ...
- TextView textSize 文字大小
TextView,很常见的控件.关于文字大小的方法有: android.widget.TextView#getTextSize 返回值的单位是PX /** * @return the size (i ...
- Android TextView自动换行文字排版参差不齐的原因
今天项目没什么进展,公司后台出问题了.看了下刚刚学习Android时的笔记,发现TextView会自动换行,而且排版文字参差不齐.查了下资料,总结原因如下: 1.半角字符与全角字符混乱所致:这种情况一 ...
- Android TextView中有图片有文字混合排列
Android TextView中有图片有文字混合排列 1.使用html.fromHtml 2.新建ImageGetter 3.使用<img src>标签 demo: 1.设置文字 ((T ...
- Android TextView文字描边的实现!!
Android开发:文字描边 转自:http://www.oschina.net/code/snippet_586849_37287 1. [代码][Java]代码 1 2 3 4 5 6 7 8 9 ...
- Android TextView(同时显示图片+文字)
见上图:需要图片和文字 在一起 之前的做法是用两个控件组成 <LinearLayout> <ImageView /> <TextView /> </Linea ...
随机推荐
- 【Howie玩docker】-使用mono编译c#程序
根据前面的方法,在windows和Linux共享文件夹,然后就可以开发了! Start up an Ubuntu container $ docker run -it ubuntu bash Upda ...
- windbg命令学习4
4.查看调用栈 k命令:显示的是一定数量的栈帧, 其中帧的数量是由.kframes命令来控制的, 默认值是256. 我们如何来判断函数的栈指针,参数地址和局部变量地址呢? 举一个简单的windbg的k ...
- ODI KM二次开发手册
ODI KM二次开发手册 分类: ODI(16) 目录(?)[+] 1 引言 1.1 编写目的 本手册面向的读者对象为具备数据集成业务知识及对ODI操作了解的开发人员,作为其完成基于ODI基础上K ...
- android 自定义控件,自定义属性设置
做listView的上拉下拉刷新,网上找了个历程.但是有些界面只有上拉刷新,有些界面是下拉刷新.觉得应该在xml里定义一个属性控制上下拉使能. 0.关于自定义控件: 自定义控件设计主要方式有:a) 继 ...
- 1.5 外部销售自动创建为内部PR
1.5 外部销售自动创建为内部PR 1.5.1 业务方案描述 外部销售订单登记后,在销售订单录入界面点击一个创建内部申请按钮,自动将外部销售订单创建为内部申请,创建后将不得再次创 ...
- In-System Debugger for 8051 Devices(ISD 8051单片机在线调试器)
此文档包含了最新版本的说明及最近的更新特别是对 ISD51 的说明(用户手册没有此说明) Keil Software,Inc and Keil Elektronik GmbH保留所有此文件中涉及的信息 ...
- Unix/Linux环境C编程入门教程(15) BT5开发环境搭建
1. Backtrack 是处于世界领先地位的渗透测试和信息安全审计发行版本.有着上百种预先安装好的工具软件,并确定能完美运行,Backtrack5 提供了一个强大的渗透测试平台--从Web hack ...
- c reference
1,函数:strdup复制字符串函数原型定义:char * strdup(const char *s);函数说明:strdup()会先用maolloc()配置与参数s字符串相同的空间大小,然后将参数s ...
- ItextSharp代码示例
示例代码目录 示例代码0101. 5 示例代码0102. 7 示例代码0103. 9 示例代码0104. 11 示例代码0105. 13 示例代码0106. 15 示例代码0107. 17 示例代码0 ...
- xcode -饼状进度条
界面搭建 创建一个画饼状的类 eatView 集成UIView #import "eatView.h" @implementation eatView // Only overr ...