記一次SpannableString使用

????????相信很多app在登錄或者注冊頁面會出現(xiàn)下面這個樣式:一行文字 兩個下劃線 兩個點擊事件期升。偷懶的實現(xiàn) 可能會放三四個textview 然后給其中兩個添加下劃線和點擊事件播赁,但感覺不是很優(yōu)雅乓序,于是就想到了用SpannableString來實現(xiàn)

鱉嗦話坎背,直接上代碼

String text = "登錄/注冊即表示同意鏈會議 服務(wù)條款 和 隱私條款";

? ? ? ? SpannableString spanString = new SpannableString(text);

? ? ? ? ForegroundColorSpan foregroundColorSpan = new ForegroundColorSpan(getResources().getColor(R.color.color_a0a0a0));

? ? ? ? ClickableSpan serviceSpan = new ClickableSpan() {

? ? ? ? ? ? @Override

? ? ? ? ? ? public void onClick(View widget) {

? ? ? ? ? ? }

? ? ? ? };

? ? ? ? UnderlineSpan underlineSpan = new UnderlineSpan(){

? ? ? ? ? ? @Override

? ? ? ? ? ? public void updateDrawState(TextPaint ds) {

? ? ? ? ? ? ? ? ds.setColor(Color.parseColor("#a0a0a0"));

? ? ? ? ? ? ? ? ds.setUnderlineText(true);

? ? ? ? ? ? }

? ? ? ? };

? ? ? ? UnderlineSpan newUnderlineSpan = new UnderlineSpan(){

? ? ? ? ? ? @Override

? ? ? ? ? ? public void updateDrawState(TextPaint ds) {

? ? ? ? ? ? ? ? ds.setColor(Color.parseColor("#a0a0a0"));

? ? ? ? ? ? ? ? ds.setUnderlineText(true);

? ? ? ? ? ? }

? ? ? ? };

? ? ? ? ClickableSpan privacySpan = new ClickableSpan() {

? ? ? ? ? ? @Override

? ? ? ? ? ? public void onClick(View widget) {

? ? ? ? ? ? }

? ? ? ? };

? ? ? ? spanString.setSpan(foregroundColorSpan, 0, text.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);

? ? ? ? spanString.setSpan(serviceSpan,14, 18, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);

? ? ? ? spanString.setSpan(underlineSpan,14, 18, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);

? ? ? ? spanString.setSpan(privacySpan,21, 25, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);

? ? ? ? spanString.setSpan(newUnderlineSpan,21, 25, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);

? ? ? ? tvProtocol.setText(spanString);

? ? ? ? tvProtocol.setMovementMethod(LinkMovementMethod.getInstance());

因為有好多博主已經(jīng)詳細解說過Spanned的flag 我在這就不廢話了(其實也是自己沒有去研究)

傳送門:其實你不懂:Android之Spanned flag

這里主要記錄一下我在使用中遇到的問題:

眼尖的小伙伴可能發(fā)現(xiàn) 我為啥寫了兩個一樣的添加下劃線的UnderlineSpan,用一個不是還節(jié)省對象的創(chuàng)建嗎眨业?龄捡!

最開始 我也是這么想的墅茉,但結(jié)果發(fā)現(xiàn)如果兩個共用一個UnderlineSpan對象的話悍募,UnderlineSpan設(shè)置的顏色就會失效洋机。

有人問“為啥你的下劃線還要設(shè)置顏色喜鼓?”?

其實庄岖,單獨設(shè)置下劃線的話隅忿,是不需要重寫UnderlineSpan的updateDrawState()方法。

但由于我的需求里面 有下劃線的那幾個字是有額外的點擊事件的蝉揍,要想同時擁有點擊和下劃線又沾,只能這么寫(也可能是我還沒有找到更好的)捍掺。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末曲横,一起剝皮案震驚了整個濱河市禾嫉,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌孽椰,老刑警劉巖黍匾,帶你破解...
    沈念sama閱讀 217,542評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異霎终,居然都是意外死亡,警方通過查閱死者的電腦和手機保礼,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,822評論 3 394
  • 文/潘曉璐 我一進店門目派,熙熙樓的掌柜王于貴愁眉苦臉地迎上來白筹,“玉大人,你說我怎么就攤上這事顽照∶龉眩” “怎么了植影?”我有些...
    開封第一講書人閱讀 163,912評論 0 354
  • 文/不壞的土叔 我叫張陵思币,是天一觀的道長谷饿。 經(jīng)常有香客問我指孤,道長,這世上最難降的妖魔是什么叉跛? 我笑而不...
    開封第一講書人閱讀 58,449評論 1 293
  • 正文 為了忘掉前任宏所,我火速辦了婚禮充石,結(jié)果婚禮上骤铃,老公的妹妹穿的比我還像新娘。我一直安慰自己坷剧,他們只是感情好惰爬,可當我...
    茶點故事閱讀 67,500評論 6 392
  • 文/花漫 我一把揭開白布雅任。 她就那樣靜靜地躺著,像睡著了一般寇漫。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上栓撞,一...
    開封第一講書人閱讀 51,370評論 1 302
  • 那天,我揣著相機與錄音瓢颅,去河邊找鬼。 笑死,一個胖子當著我的面吹牛信柿,可吹牛的內(nèi)容都是我干的渔嚷。 我是一名探鬼主播,決...
    沈念sama閱讀 40,193評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼搀罢,長吁一口氣:“原來是場噩夢啊……” “哼榔至!你這毒婦竟也來了邢享?” 一聲冷哼從身側(cè)響起伊履,我...
    開封第一講書人閱讀 39,074評論 0 276
  • 序言:老撾萬榮一對情侶失蹤赠尾,失蹤者是張志新(化名)和其女友劉穎力穗,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體萍虽,經(jīng)...
    沈念sama閱讀 45,505評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡睛廊,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,722評論 3 335
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了杉编。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片超全。...
    茶點故事閱讀 39,841評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖邓馒,靈堂內(nèi)的尸體忽然破棺而出嘶朱,到底是詐尸還是另有隱情,我是刑警寧澤光酣,帶...
    沈念sama閱讀 35,569評論 5 345
  • 正文 年R本政府宣布疏遏,位于F島的核電站,受9級特大地震影響救军,放射性物質(zhì)發(fā)生泄漏财异。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,168評論 3 328
  • 文/蒙蒙 一唱遭、第九天 我趴在偏房一處隱蔽的房頂上張望戳寸。 院中可真熱鬧,春花似錦拷泽、人聲如沸疫鹊。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,783評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽拆吆。三九已至,卻和暖如春脂矫,著一層夾襖步出監(jiān)牢的瞬間枣耀,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,918評論 1 269
  • 我被黑心中介騙來泰國打工羹唠, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留奕枢,地道東北人娄昆。 一個月前我還...
    沈念sama閱讀 47,962評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像缝彬,于是被迫代替她去往敵國和親萌焰。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,781評論 2 354

推薦閱讀更多精彩內(nèi)容