Android使用TextView實(shí)現(xiàn)無(wú)下劃線超鏈接的方法
本文實(shí)例講述了Android使用TextView實(shí)現(xiàn)無(wú)下劃線超鏈接的方法。分享給大家供大家參考,具體如下:
Android系統(tǒng)默認(rèn)把網(wǎng)址、電話、地圖(geo地址)、郵箱等轉(zhuǎn)換為超鏈接。
具體請(qǐng)查看 android:TextView簡(jiǎn)單設(shè)置文本樣式和超鏈接的方法
和HTML中的一樣,默認(rèn)超鏈接都帶下劃線的,下面的方案可以在TextView中去掉超鏈接的下劃線:
1、重寫(xiě)ClickableSpan類來(lái)去掉下劃線樣式(系統(tǒng)默認(rèn)使用ClickableSpan來(lái)封裝超鏈接)
//無(wú)下劃線超鏈接,使用textColorLink、textColorHighlight分別修改超鏈接前景色和按下時(shí)的顏色 private class NoLineClickSpan extends ClickableSpan { String text; public NoLineClickSpan(String text) { super(); this.text = text; } @Override public void updateDrawState(TextPaint ds) { ds.setColor(ds.linkColor); ds.setUnderlineText(false); //去掉下劃線 } @Override public void onClick(View widget) { processHyperLinkClick(text); //點(diǎn)擊超鏈接時(shí)調(diào)用 } }
2、把超鏈接文本封裝為NoLineClickSpan對(duì)象,并添加到TextView中
TextView tv = findViewById(R.id.tv_click); SpannableString spStr = new SpannableString("腳本之家-->http://www.dbjr.com.cn"); ClickSpan clickSpan = new NoLineClickSpan(vo); //設(shè)置超鏈接 spStr.setSpan(clickSpan, 0, str.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE); tv.append(spStr); tv.setMovementMethod(LinkMovementMethod.getInstance());
PS:不用把TextView的屬性autoLink設(shè)為”all”.
3、設(shè)置超鏈接為可點(diǎn)擊狀態(tài)
tv.setMovementMethod(LinkMovementMethod.getInstance());
PS:在NoLineClickSpan類中實(shí)現(xiàn)onClick()回調(diào)方法.
更多關(guān)于Android相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Android開(kāi)發(fā)入門與進(jìn)階教程》、《Android多媒體操作技巧匯總(音頻,視頻,錄音等)》、《Android基本組件用法總結(jié)》、《Android視圖View技巧總結(jié)》、《Android布局layout技巧總結(jié)》及《Android控件用法總結(jié)》
希望本文所述對(duì)大家Android程序設(shè)計(jì)有所幫助。
相關(guān)文章
Android studio導(dǎo)出APP測(cè)試包和構(gòu)建正式簽名包
大家好,本篇文章主要講的是Android studio導(dǎo)出APP測(cè)試包和構(gòu)建正式簽名包,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下2021-12-12如何玩轉(zhuǎn)Android矢量圖VectorDrawable
這篇文章主要教大家如何玩轉(zhuǎn)Android矢量圖VectorDrawable,對(duì)矢量圖感興趣的小伙伴們可以參考一下2016-05-05詳解Android USB轉(zhuǎn)串口通信開(kāi)發(fā)基本流程
本篇文章主要介紹了Android USB轉(zhuǎn)串口通信開(kāi)發(fā)基本流程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-04-04Android藍(lán)牙通信聊天實(shí)現(xiàn)發(fā)送和接受功能
這篇文章主要為大家詳細(xì)介紹了Android藍(lán)牙通信聊天實(shí)現(xiàn)發(fā)送和接受功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-07-07Android實(shí)現(xiàn)畫(huà)板功能(二)
這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)畫(huà)板功能的第二篇,使用imageView,bitmap方式實(shí)現(xiàn)畫(huà)板,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-05-05Android學(xué)習(xí)筆記--使用剪切板在Activity中傳值示例代碼
相對(duì)于getText和setText而言,利用ClipData對(duì)象來(lái)傳遞數(shù)據(jù),更符合面向?qū)ο蟮乃枷?,而且所能傳遞的數(shù)據(jù)類型也多樣化了2013-06-06Android App在ViewPager中使用Fragment的實(shí)例講解
這篇文章主要介紹了Android App在ViewPager中使用Fragment的實(shí)例講解,ViewPager組件主要被用來(lái)制作滑動(dòng)切換效果,需要的朋友可以參考下2016-03-03Flutter定時(shí)器、倒計(jì)時(shí)的快速上手及實(shí)戰(zhàn)講解
這篇文章主要給大家介紹了關(guān)于Flutter定時(shí)器、倒計(jì)時(shí)的快速上手及實(shí)戰(zhàn)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Flutter具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-06-06