您的位置:首页 > 产品设计 > UI/UE

Android UI-去除SpannableString下划线

2015-10-20 16:05 465 查看

去除SpannableString下划线

第一步:

我们要extends ClickableSpan;

[code]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。

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

第二步:

[code]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

所以这里也不例外

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


TextView只要负责显示就可以了!其它什么点击事件都不需要加.

好的,所有的流程已经完成。谢谢,不喜勿喷
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: