怎样把textview的一些文字加上背景色:

Spannable str = new SpannableString("#fdsfdfsdfdsfd#");
Matcher matcher = getEmailPattern().matcher((CharSequence) str);
while (matcher.find()) {
int start = matcher.start();
int end = matcher.end();
str.setSpan(new ForegroundColorSpan(0xFF1A5798), start, end,
Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
}
textView.setText(str);

假设在TextView上把email链接找出来并加上下划线:

写一个属性类继承ClickableSpan

public class MessageBundleSpan extends ClickableSpan {

	public enum LinkType {
EMAIL
} private String mText;
private MainActivity mActivity; public MessageBundleSpan(MainActivity activity, String text) {
if (activity == null) {
throw new NullPointerException("activity is NULL");
} mActivity = activity;
mText = text;
} @Override
public void updateDrawState(TextPaint ds) {
ds.setColor(mActivity.getResources().getColor(
R.color.message_bundle_link));
ds.setUnderlineText(true);
} @Override
public void onClick(View widget) {
new AlertDialog.Builder(mActivity).setTitle("Title").setMessage(mText)
.create().show();
} }
<span style="white-space:pre">	</span>TextView textView = (TextView)findViewById(R.id.textview);
String str = "$#%$%$%$fsdfsddsfsdf@163.com&*&*DFDF152152@1255.com";
textView.setText(str); SpannableStringBuilder stringBuilder = new SpannableStringBuilder(textView.getText()); applyRegexPattern(textView, stringBuilder, getEmailPattern(), MessageBundleSpan.LinkType.EMAIL); textView.setText(stringBuilder, TextView.BufferType.SPANNABLE);
textView.setMovementMethod(LinkMovementMethod.getInstance());
private static Pattern getEmailPattern() {
if (sharppattern == null)
sharppattern = Pattern.compile("[\\w[.-]]+@[\\w[.-]]+\\.[\\w]+");
return sharppattern;
} private void applyRegexPattern(TextView textView, SpannableStringBuilder stringBuilder, Pattern pattern, MessageBundleSpan.LinkType type) {
Matcher matcher = pattern.matcher(textView.getText().toString().toLowerCase());
while(matcher.find()) {
String text = textView.getText().toString().substring(matcher.start(), matcher.end());
stringBuilder.setSpan(new MessageBundleSpan(this, text), matcher.start(), matcher.end(), Spannable.SPAN_INCLUSIVE_INCLUSIVE);
}
}

效果图:

android假设给TextView或EditText的email链接加下划线,并在点击在email连接上能够弹框显示的更多相关文章

  1. Android控件——TextView,EditText

    TextView: 显示文本控件 EditText 输入文本框 1.TextView常用属性:

  2. 【我的Android进阶之旅】如何隐藏Android中EditText控件的默认下划线

    Android EditText控件是经常使用的控件,但是有时候我们并不需要它的一些默认的属性,比如说下划线,因为有时候这样的默认下划线看起来特别怪异,和其他控件在一起搭配的时候不协调,因此有时候就需 ...

  3. Android EditText如何去除边框添加下划线

    (一)问题 之前的自定义EditText只能显示高度不超过屏幕高度的文本内容,继续增加内容会出现如下问题: (二)原因分析 下部(超出屏幕高度的部分)没有继续画线,也就是说横线没有画够,那么一定是循环 ...

  4. android里TextView加下划线的几种方式

    如果是在资源文件里: <resources> <string name="hello"><u>phone:0123456</u>&l ...

  5. Android TextView加下划线的几种方式

    如果是在资源文件里: <resources> <</u></string> <string name="app_name">M ...

  6. 设置TextView下划线并响应点击事件(SpannableString)

    下面是一个20行的完整Demo代码:基本原理是使用一个SpannableString并设置其ClickableSpan来响应点击事件. TextView useInfo = (TextView) fi ...

  7. Android 小技巧-- TextView与EditText 同步显示

    方法一.利用View.OnKeyListener"同步"显示 EditText  myEdit = (EditText)findViewById(R.id.myEdit); Tex ...

  8. Android自定义EditText去除边框并添加下划线

    <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=&quo ...

  9. 隐藏android中EditText中的下划线以及修改光标颜色

    在android开发中 EditTextText是我们经常用到的,我们使用时会有一些小问题,当我们点击输入文字时,EditText中的光标和下划线会变成粉红色. 解决方法很简单,我们只要在EditTe ...

随机推荐

  1. syslog/rsyslog的使用

    syslogd是Linux下的一个记录日志文件服务.从结构来说,可以理解为这个服务下面有一系列的子服务,例如mail.auth.cron.kern等等,这些子服务对外提供日志记录的功能,而当其它的程序 ...

  2. C#图解教程学习笔记——方法

    一.字段和本地变量.本地常量字段:隶属于类的变量,即类的成员变量.本地变量:于保存本地的或临时的计算数据,即局部变量.本地常量:必须声明在块内部,声明时必须初始化,声明后不能改变.实例字段与本地变量区 ...

  3. hadoop(三)HDFS 文件系统

    Hadoop 附带了一个名为 HDFS(Hadoop 分布式文件系统)的分布式文件系统,专门 存储超大数据文件,为整个 Hadoop 生态圈提供了基础的存储服务. 本章内容: 1) HDFS 文件系统 ...

  4. (5)ASP.NET HTML服务器控件

    工具箱 与服务端交互 <body> <form id="form1" runat="server"> <div> <% ...

  5. Jmeter(五十)_性能测试模拟真实场景下的用户操作

    概述 我们在做性能测试的时候,不同的视角看到的结果都不一样. 例如响应时间 用户通过客户端向服务端发出请求的时间为: T1服务端接收到请求,处理该请求的时间为:T2服务端返回数据给客户端时间为: T3 ...

  6. IT人为了自己父母和家庭,更得注意自己的身体和心理健康

    我前一阵在一家互联网公司,工作节奏是995,忙的时候,要晚上10点才能离开公司,有时候周六还得加班.自己感觉身体状况有所下降,且听说其它一个组,在体检后多少都查出问题来,细思极恐. 有时候确实忙,那么 ...

  7. 【Kafka】《Kafka权威指南》——写数据

    不管是把 Kafka 作为消息队列.消息.总线还是数据存储平台来使用 ,总是需要有一个可以往 Kafka 写入数据的生产者和一个可以从 Kafka读取数据的消费者,或者一个兼具两种角 色的应用程序. ...

  8. springboot 2.0 整合 同时支持jsp+html跳转

    springboot项目创建教程 https://blog.csdn.net/q18771811872/article/details/88126835 springboot2.0 跳转html教程  ...

  9. java关于Timer schedule执行定时任务 1、在应用开发中,经常需要一些周期性的操作,比如每5分钟执行某一操作等

    1.在应用开发中,经常需要一些周期性的操作,比如每5分钟执行某一操作等.对于这样的操作最方便.高效的实现方式就是使用java.util.Timer工具类. private java.util.Time ...

  10. 最小二乘法及C语言实现

    我们以最简单的一元线性模型来解释最小二乘法.什么是一元线性模型呢? 监督学习中,如果预测的变量是离散的,我们称其为分类(如决策树,支持向量机等),如果预测的变量是连续的,我们称其为回归.回归分析中,如 ...