Android UI-去除SpannableString下划线

去除SpannableString下划线


第一步:
我们要extends ClickableSpan;

import android.text.TextPaint;
import android.text.style.ClickableSpan;
import android.view.View;

/**
 * Class_name:NoLineCllikcSpan 
 * Class_description: Override the ClickableSpan
 * class to remove the underline style (the default system uses ClickableSpan to
 * Create_time: November 26  2012 - 11:39:51 a.m. Change records: 
 * Modifier: LuoZhiPeng
 * Modifier_time:November 26, 2012 - 11:39:51 a.m. 
 * Version: 
 * Description:
 */
public class NoLineCllikcSpan extends ClickableSpan {

    public NoLineCllikcSpan() {
        super();
    }

    @Override
    public void updateDrawState(TextPaint ds) {
        /**set textColor**/
        ds.setColor(ds.linkColor);
        /**Remove the underline**/
        ds.setUnderlineText(false);     
    }

    @Override
    public void onClick(View widget) {
    }
}

好的,这个类完成了,其中最关键的一句就是ds.setUnderlineText(false); 相必大家看到这里就应该明白为什么了,它做的操作就是把下划线去掉,设置为false。

那如何在实际中使用呢?相必打击还是很困惑的,那我在这里告诉你如何使用:
第二步:

String name = "虎摸";
String message = ":ghju发的方法给呵护g";
SpannableString spanStr = new SpannableString(name + message);
        /**设置"虎摸"文字的单击事件**/
        spanStr.setSpan(new NoLineCllikcSpan() {
            @Override
            public void onClick(View widget) {
            }
        }, 0, name.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
        /** 设置“虎摸”文字的前景色**/
        spanStr.setSpan(new ForegroundColorSpan(Color.rgb(90, 185, 203)), 0,
                name.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

好的,看到这里大家应该明白怎么用的了吧?
看到那个.setSpan(new NoLineClickcSpan(){}) 这里用到了我们开始第一步中用到的那个重写的类。实现了虎摸的颜色值,也实现了虎摸的点击事件!

忘记了这一步,不好意思,加下。
第三步:如何显示到界面上。
这不其实很简单了,只要一个View装着就可以了,一般我们显示文本都是TextView

所以这里也不例外

TextView tv = (TextView)this.findViewByid(R.lzp.tv);
tv.setText( name + message);

TextView只要负责显示就可以了!其它什么点击事件都不需要加.
好的,所有的流程已经完成。谢谢,不喜勿喷


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值