TextView中使用一个字符串替换字符串str中start到end的子字符串

sb.setSpan(new ReplacementSpan() {

				@Override
				public int getSize(Paint paint, CharSequence text, int start, int end,
						FontMetricsInt fm) {
					//最后一个参数为end-1,防止这个span最后与下一个字符之间有空格
					if (fm != null) {
						paint.getFontMetricsInt(fm);
					}
					return (int) paint.measureText(text, start, end);
				}

				@Override
				public void draw(Canvas canvas, CharSequence text, int start, int end,
						float x, int top, int y, int bottom, Paint paint) {
//			    	String newText = "****" + text.toString().substring(start + 4, end);
			    	paint.setUnderlineText(true);
			    	paint.setColor(linkColor);
			        canvas.drawText("****", 0, end - start, x, y, paint);
				}
			}, start, start + 4, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

在画这个span之前要先设置覆盖的那几个字符typeface是monospace(等宽字符)的,不然就会出现空格、重叠等现象

代码如下:

sb.setSpan(new TypefaceSpan("monospace"), start, end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
时间: 2024-07-30 12:55:50

TextView中使用一个字符串替换字符串str中start到end的子字符串的相关文章

php字符串替换函数str

php里字符串替换的函数,有str_replace().str_ireplace().substr_replace().preg_replace().strtr()等几个,程序员在写程序的时候,往往会根据自己的习惯以及实际情况选用其中一个或多个.这几个函数虽然都有字符串替换的功能,但它们无论从语法到作用,还是速度和效率上都有所不同,所以并非在任何场合都可以使用它们. str_replace()与preg_replace()的区别 在字符串替换的函数里,str_replace()的使用率是最高的,

javascript中判断一个值是否在数组中并没有直接使用_基础知识

在JS中要判断一个值是否在数组中并没有函数直接使用,如PHP中就有in_array()这个函数.但我们可以写一个类似in_array()函数来判断是一个值否在函数中 例1 复制代码 代码如下: /* * * 判断在数组中是否含有给定的一个变量值 * 参数: * needle:需要查询的值 * haystack:被查询的数组 * 在haystack中查询needle是否存在,如果找到返回true,否则返回false. * 此函数只能对字符和数字有效 * */ function findnum(){

动态数组,数组初始化,数组内存释放,向数组中添加一个元素,向数组中添加多个元素,数组打印,顺序查找,二分查找,查找数组并返回地址,冒泡排序,改变数组中某个元素的值,删除一个数值,删除所有,查找含有

 1定义接口: Num.h #ifndef_NUM_H_ #define_NUM_H_   #include<stdio.h> #include<stdlib.h>   /************************************************************************/ /*数组的结构体类型                                                    */ /***************

在liunx中编写一个脚步定期删除mysql中的数据实现步骤_unix linux

首先创建一个文件目录 mkdir myfile vi:创建修改文件 vi delradiusdata 复制代码 代码如下: vi是linux下创建和编辑文件常用的工具,下面已创建startWeblogic.sh脚本为例,讲解常用操作. 1.首先执行vi startWeblogic.sh,如果此时当前目录下没有这个文件,则会进行新建:如果有同名文件,将会读取改文件内容并显示. 2.进入vi编辑器后,初始时是命令模式,如果需要输入文本,可点击键盘上的i,a,r键(i=insert.a=append.

sqlite json中字符串替换

问题描述 sqlite json中字符串替换 在sqlite中 用sql修改部分字段值 :update AA set aa = replace(aa'a''b') 但是无法修改是什么原因?该字段值是 一个json串是不是因为该字段值中包双引号 解决方案 replace(aa'a''b') 有问题,你先看看书吧http://www.cnblogs.com/liping13599168/archive/2011/05/24/2054908.html 解决方案二: update GOODS set G

c#-.NET C#字符串替换问题

问题描述 .NET C#字符串替换问题 题目:尝试动手,要求去除字符串中的所有空格. 怎么用replace方法替换空格呢,输入空格的话提示不可为空, 现在想了解怎么用replace方法去除空格以及答案中是怎么去除空格的. 附上参考答案的代码: Console.WriteLine("请输入带有空格的字符串:"); string str = ""; CharEnumerator CEnumerator = Console.ReadLine().GetEnumerator

ASP replace()字符串替换介绍

Replace 函数 返回字符串,其中指定数目的某子字符串被替换为另一个子字符串. Replace(expression, find, replacewith[, compare[, count[, start]]]) 参数 expression 必选项.字符串表达式 包含要替代的子字符串. Find 必选项.被搜索的子字符串. Replacewith 必选项.用于替换的子字符串. Start 可选项.expression 中开始搜索子字符串的位置.如果省略,默认值为 1.在和count 关联时

C#WINFORM程序将删除,替换,插入PDF中的一个页面,使用什么插件,求指教

问题描述 目前用PDF需要将PDF中某个界面用另外一个PDF中的一个界面替换目前使用的插件是iTextSharp貌似没有这个功能,求指教有其他方式也行 解决方案

[LeetCode] Palindromic Substrings 回文子字符串

Given a string, your task is to count how many palindromic substrings in this string. The substrings with different start indexes or end indexes are counted as different substrings even they consist of same characters. Example 1: Input: "abc" Ou

android ViewPage中添加一个腾讯地图

问题描述 android ViewPage中添加一个腾讯地图 View中添加一项ViewPage页面,可以定位地图的空间怎么写?最好是有Demo看一下 解决方案 ViewPager里面嵌入fragment或者其他试图,fragement中设置layout文件,地图都是第三方的,你按照文档中嵌入进来就行了 解决方案二: viewpager里面添加fragment.然后把地图添加到fragment中就行了. 腾讯地图的话,你参考官方文档一步步来就行了. 这个blog可以参考一下:http://blo