Android高亮显示TextView某个单词,添加链接

请输入图片描述

package com.zhou.activity;  
  
import android.app.Activity;  
import android.graphics.Color;  
import android.os.Bundle;  
import android.text.Spannable;  
import android.text.SpannableString;  
import android.text.Spanned;  
import android.text.method.LinkMovementMethod;  
import android.text.style.BackgroundColorSpan;  
import android.text.style.ForegroundColorSpan;  
import android.text.style.StyleSpan;  
import android.text.style.URLSpan;  
import android.widget.TextView;  
  
public class TextViewLinkActivity extends Activity {  
    TextView myTextView;  
    @Override  
    public void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  
        setContentView(R.layout.main);  
        myTextView = (TextView) this.findViewById(R.id.myTextView);  
          
        //创建一个 SpannableString对象  
        SpannableString sp = new SpannableString("这句话中有百度超链接,有高亮显示,这样,或者这样,还有斜体.");  
        //设置超链接  
        sp.setSpan(new URLSpan("http://www.baidu.com"), 5, 7,  
                Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);  
        //设置高亮样式一  
        sp.setSpan(new BackgroundColorSpan(Color.RED), 17 ,19,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);  
        //设置高亮样式二  
        sp.setSpan(new ForegroundColorSpan(Color.YELLOW),20,24,Spannable.SPAN_EXCLUSIVE_INCLUSIVE);    
        //设置斜体  
        sp.setSpan(new StyleSpan(android.graphics.Typeface.BOLD_ITALIC), 27, 29, Spannable.SPAN_EXCLUSIVE_INCLUSIVE);  
        //SpannableString对象设置给TextView  
        myTextView.setText(sp);  
        //设置TextView可点击  
        myTextView.setMovementMethod(LinkMovementMethod.getInstance());  
    }  
}


原文链接:http://lovezhou.iteye.com/blog/905446

Spannalbe文档:

Spannalbe
This is the interface for text to which markup objects can be attached and detached. Not all Spannable classes have mutable text; see Editable for that.

setSpan方法:

public abstract void setSpan (Object what, int start, int end, int flags)

Since: API Level 1
Attach the specified markup object to the range start…end of the text, or move the object to that range if it was already attached elsewhere. See Spanned for an explanation of what the flags mean. The object can be one that has meaning only within your application, or it can be one that the text system will use to affect text display or behavior. Some noteworthy ones are the subclasses of CharacterStyle and ParagraphStyle, and TextWatcher and SpanWatcher.


http://developer.android.com/referenc...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值