今天就跟大家聊聊有關(guān)怎么在Android中利用TextView實(shí)現(xiàn)超鏈接,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。
網(wǎng)站建設(shè)公司,為您提供網(wǎng)站建設(shè),網(wǎng)站制作,網(wǎng)頁(yè)設(shè)計(jì)及定制網(wǎng)站建設(shè)服務(wù),專(zhuān)注于企業(yè)網(wǎng)站設(shè)計(jì),高端網(wǎng)頁(yè)制作,對(duì)成都廣告推廣等多個(gè)行業(yè)擁有豐富的網(wǎng)站建設(shè)經(jīng)驗(yàn)的網(wǎng)站建設(shè)公司。專(zhuān)業(yè)網(wǎng)站設(shè)計(jì),網(wǎng)站優(yōu)化推廣哪家好,專(zhuān)業(yè)營(yíng)銷(xiāo)推廣優(yōu)化,H5建站,響應(yīng)式網(wǎng)站。
autoLink屬性一共有六個(gè)值,分別是none(正常),web(將文本識(shí)別為一個(gè)網(wǎng)址),phone(將文本識(shí)別為一個(gè)電話(huà)號(hào)碼),mail(將文本識(shí)別為一個(gè)郵件地址),map(這個(gè),呃,該怎么表述呢?會(huì)打開(kāi)地圖應(yīng)用),all(根據(jù)文本自動(dòng)識(shí)別)。一般情況下我們?cè)O(shè)置為all即可,我們看看,這個(gè)時(shí)候它就會(huì)自動(dòng)將TextView中的電話(huà)號(hào)碼、郵件地址、網(wǎng)頁(yè)鏈接等識(shí)別出來(lái),這中方式是最簡(jiǎn)單的一種。如:
<TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:autoLink="all" android:text=" android:textSize="16dp" />
我們知道TextView可以直接顯示轉(zhuǎn)換后的HTML,那么借助H5開(kāi)發(fā)經(jīng)驗(yàn),我們知道網(wǎng)頁(yè)中的超鏈接也可以在TextView中打開(kāi),如下:
只要我們寫(xiě)好協(xié)議,這個(gè)其實(shí)也很簡(jiǎn)單。
tv1.setText(Html.fromHtml("<a href='tel:18565554482'>打電話(huà)</a>,<a href='smsto:18565554482'>發(fā)短信</a>,<a href='mailto:584991843@qq.com'>發(fā)郵件</a>,<a href='http://www.baidu.com'>Go百度</a>")); tv1.setMovementMethod(LinkMovementMethod.getInstance());
strings.xml中的定義如下:
<string name="tv4"><a href='tel:18565554482'>打電話(huà)</a>,<a href='smsto:18565554482'>發(fā)短信</a>,<a href='mailto:584991843@qq.com'>發(fā)郵件</a>,<a href='http://www.baidu.com'>Go百度</a></string>
TextView的XML定義如下:
<TextView android:id="@+id/tv4" android:layout_width="match_parent" android:layout_height="48dp" android:gravity="center" android:text="@string/tv4" android:textSize="24sp" > </TextView>
然后只需要在Activity中設(shè)置該TextView為可點(diǎn)擊狀態(tài)即可:
tv4.setMovementMethod(LinkMovementMethod.getInstance());
關(guān)于SpannableString的更多使用,參見(jiàn)另一篇:
SpannableString ss = new SpannableString("打電話(huà),發(fā)短信,發(fā)郵件,Go百度"); ss.setSpan(new URLSpan("tel:18565554482"), 0, 3, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); ss.setSpan(new URLSpan("smsto:18565554482"), 4, 7, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); ss.setSpan(new URLSpan("mailto:584991843@qq.com"), 8, 11, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); ss.setSpan(new URLSpan("http://www.baidu.com"), 12, 16, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); //SpannableString對(duì)象設(shè)置給TextView tv3.setText(ss); //設(shè)置TextView可點(diǎn)擊 tv3.setMovementMethod(LinkMovementMethod.getInstance());
設(shè)置單一效果:
// Setup single span SpannableTextView tv1 = (SpannableTextView) view.findViewById(R.id.tv1); Span span1 = new Span.Builder("ForegroundSpan, BackgroundSpan, and CustomTypefaceSpan") .foregroundColor(R.color.purple_500) .backgroundColor(R.color.green_500) .typeface(mItalicFont) .build(); tv1.setFormattedText(span1);
設(shè)置多重效果疊加:
// Setup multiple spans SpannableTextView tv2 = (SpannableTextView) view.findViewById(R.id.tv2); List<Span> spans1 = new ArrayList<>(); spans1.add(new Span.Builder("ForegroundSpan") .foregroundColor(R.color.red_500) .build()); spans1.add(new Span.Builder("BackgroundSpan") .backgroundColor(R.color.yellow_500) .build()); spans1.add(new Span.Builder("ForegroundSpan and BackgroundSpan") .foregroundColor(R.color.orange_500) .backgroundColor(R.color.blue_500) .build()); spans1.add(new Span.Builder("ForegroundSpan, BackgroundSpan, and CustomTypefaceSpan") .foregroundColor(R.color.green_500) .backgroundColor(R.color.indigo_500) .typeface(mRegularFont) .build()); tv2.setFormattedText(spans1);
實(shí)現(xiàn)無(wú)下劃線(xiàn)超鏈接:
自定義的urlspan 繼承URLSpan 去掉下劃線(xiàn)
//自定義urlspan 去掉下劃線(xiàn) public class URLSpanNoUnderline extends URLSpan { public URLSpanNoUnderline(String url) { super(url); } @Override public void updateDrawState(TextPaint ds) { super.updateDrawState(ds); ds.setUnderlineText(false); ds.setColor(Color.BLACK); } }
看完上述內(nèi)容,你們對(duì)怎么在Android中利用TextView實(shí)現(xiàn)超鏈接有進(jìn)一步的了解嗎?如果還想了解更多知識(shí)或者相關(guān)內(nèi)容,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。
當(dāng)前標(biāo)題:怎么在Android中利用TextView實(shí)現(xiàn)超鏈接
本文鏈接:http://jinyejixie.com/article12/pggodc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供面包屑導(dǎo)航、電子商務(wù)、外貿(mào)網(wǎng)站建設(shè)、微信公眾號(hào)、全網(wǎng)營(yíng)銷(xiāo)推廣、用戶(hù)體驗(yàn)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)