今天爲大家講個小的知識點,網上翻閱了下,有相關的知識點介紹,但是在使用的過程中還是不是很詳細,在此我把這個小知識點說明下,叫你***如何去除SpannableString下劃線***。很早以前開發的時候,我也爲了這個問題折磨了很久的,如今想想原來是如此的簡單,呵呵。
看到效果圖上面的虎摸?這種效果就是微信和QQ空間都有的,並且這文本還具有點擊事件
第一步:
我們要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只要負責顯示就可以了!其它什麼點擊事件都不需要加.
好的,所有的流程已經完成。謝謝,不喜勿噴