最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android開發(fā)實(shí)現(xiàn)TextView超鏈接5種方式源碼實(shí)例

 更新時(shí)間:2020年03月19日 16:48:47   作者:jkdev  
這篇文章主要介紹了Android開發(fā)實(shí)現(xiàn)TextView超鏈接5種方式源碼實(shí)例,需要的朋友可以參考下

Android實(shí)現(xiàn)TextView超鏈接一共有五種方式:推薦第四種、第五種

1. 直接在xml文件中配置autoLink屬性(簡(jiǎn)單易用,效果單一)

autoLink屬性一共有六個(gè)值,分別是none(正常),web(將文本識(shí)別為一個(gè)網(wǎng)址),phone(將文本識(shí)別為一個(gè)電話號(hào)碼),mail(將文本識(shí)別為一個(gè)郵件地址),map(這個(gè),呃,該怎么表述呢?會(huì)打開地圖應(yīng)用),all(根據(jù)文本自動(dòng)識(shí)別)。一般情況下我們?cè)O(shè)置為all即可,我們看看,這個(gè)時(shí)候它就會(huì)自動(dòng)將TextView中的電話號(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" />

2. 使用HTML語(yǔ)言

我們知道TextView可以直接顯示轉(zhuǎn)換后的HTML,那么借助H5開發(fā)經(jīng)驗(yàn),我們知道網(wǎng)頁(yè)中的超鏈接也可以在TextView中打開,如下:

只要我們寫好協(xié)議,這個(gè)其實(shí)也很簡(jiǎn)單。

 

 tv1.setText(Html.fromHtml("<a href='tel:18565554482'>打電話</a>,<a href='smsto:18565554482'>發(fā)短信</a>,<a href='mailto:584991843@qq.com'>發(fā)郵件</a>,<a )); 
  tv1.setMovementMethod(LinkMovementMethod.getInstance()); 

3. 在strings.xml中直接寫HTML,然后在TextView的xml中直接引用即可(跟第二種方法差不多)

strings.xml中的定義如下:

<string name="tv4"><a href='tel:18565554482'>打電話</a>,<a href='smsto:18565554482'>發(fā)短信</a>,<a href='mailto:584991843@qq.com'>發(fā)郵件</a>,<a >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()); 

4. 使用SpannableString實(shí)現(xiàn)超鏈接(效果多樣)

關(guān)于SpannableString的更多使用,參見(jiàn)另一篇:

SpannableString ss = new SpannableString("打電話,發(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()); 

5. 使用SpannableTextView實(shí)現(xiàn)(效果多樣)

設(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ú)下劃線超鏈接:

自定義的urlspan 繼承URLSpan 去掉下劃線

  //自定義urlspan 去掉下劃線 
  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);
    }
  }

本文主要為大家介紹了5種方式實(shí)現(xiàn)Android TextView超鏈接源碼實(shí)例,更多關(guān)于Android實(shí)現(xiàn)TextView超鏈接的文章請(qǐng)查看下面的相關(guān)鏈接

相關(guān)文章

  • Android加密之全盤加密詳解

    Android加密之全盤加密詳解

    這篇文章主要介紹了Android加密之全盤加密詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-03-03
  • Android數(shù)據(jù)庫(kù)greenDAO配置與使用介紹

    Android數(shù)據(jù)庫(kù)greenDAO配置與使用介紹

    這篇文章主要介紹了Android集成GreenDao數(shù)據(jù)庫(kù),使用數(shù)據(jù)庫(kù)存儲(chǔ)時(shí)候,一般都會(huì)使用一些第三方ORM框架,比如GreenDao,本文分幾步給大家介紹Android集成GreenDao數(shù)據(jù)庫(kù)的方法,需要的朋友可以參考下
    2023-03-03
  • Android 應(yīng)用中插入廣告詳解及簡(jiǎn)單實(shí)例

    Android 應(yīng)用中插入廣告詳解及簡(jiǎn)單實(shí)例

    這篇文章主要介紹了Android 應(yīng)用中插入廣告詳解及簡(jiǎn)單實(shí)例的相關(guān)資料,需要的朋友可以參考下
    2016-10-10
  • Android使用WebView播放flash的方法

    Android使用WebView播放flash的方法

    這篇文章主要介紹了Android使用WebView播放flash及判斷是否安裝flash插件的方法,以實(shí)例形式詳細(xì)講述了從布局、邏輯判斷到功能最終實(shí)現(xiàn)播放Flash的方法,是Android程序設(shè)計(jì)中比較典型的應(yīng)用,需要的朋友可以參考下
    2014-11-11
  • Android應(yīng)用開發(fā)之代碼混淆

    Android應(yīng)用開發(fā)之代碼混淆

    Android項(xiàng)目中的混淆很easy,之所以寫這篇總結(jié)是由于近期發(fā)現(xiàn)公司的代碼居然沒(méi)有混淆,反編譯后代碼隨手可得。很震驚。
    2014-07-07
  • Android自定義View的使用及其原理知識(shí)點(diǎn)總結(jié)

    Android自定義View的使用及其原理知識(shí)點(diǎn)總結(jié)

    在本篇文章里小編給大家整理的是關(guān)于Android自定義View的使用及其原理知識(shí)點(diǎn)總結(jié)內(nèi)容,需要的朋友們可以學(xué)習(xí)下。
    2019-08-08
  • Android?無(wú)障礙服務(wù)?performAction?調(diào)用過(guò)程分析

    Android?無(wú)障礙服務(wù)?performAction?調(diào)用過(guò)程分析

    這篇文章主要介紹了Android?無(wú)障礙服務(wù)?performAction?調(diào)用過(guò)程分析,無(wú)障礙服務(wù)可以模擬一些用戶操作,無(wú)障礙可以處理的對(duì)象,通過(guò)類?AccessibilityNodeInfo?表示,通過(guò)無(wú)障礙服務(wù),可以通過(guò)它的performAction方法來(lái)觸發(fā)一些action
    2022-06-06
  • Android onTouchEvent事件中onTouch方法返回值(介紹)

    Android onTouchEvent事件中onTouch方法返回值(介紹)

    下面小編就為大家?guī)?lái)一篇Android onTouchEvent事件中onTouch方法返回值(介紹)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-04-04
  • Android WebP 圖片壓縮與傳輸

    Android WebP 圖片壓縮與傳輸

    本文主要講解Android WebP 圖片壓縮與傳輸,這里對(duì)WebP圖片格式以及如何實(shí)現(xiàn)壓縮和傳輸,做了詳細(xì)講解,有需要的小伙伴可以參考下
    2016-08-08
  • AndroidStudio不自動(dòng)添加新創(chuàng)建的文件到VCS的解決辦法

    AndroidStudio不自動(dòng)添加新創(chuàng)建的文件到VCS的解決辦法

    這篇文章主要介紹了AndroidStudio不自動(dòng)添加新創(chuàng)建的文件到VCS的解決辦法的相關(guān)資料,需要的朋友可以參考下
    2017-03-03

最新評(píng)論

闵行区| 潍坊市| 南开区| 彰化县| 贵溪市| 河池市| 平邑县| 东宁县| 依兰县| 瑞昌市| 沁源县| 绥宁县| 大同市| 西乡县| 太康县| 手游| 新邵县| 宝丰县| 陕西省| 鄯善县| 县级市| 抚松县| 津市市| 萨迦县| 双辽市| 滁州市| 浦城县| 卫辉市| 固始县| 台山市| 昭觉县| 元谋县| 华宁县| 资兴市| 依安县| 河间市| 延庆县| 曲麻莱县| 密山市| 新平| 东方市|