整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          詳解HtmlTextView使用,在android上顯示web端html內容

          天和大家交流一下HtmlTextView的使用,HtmlTextView是一個開源的原生安卓第三方控件,主要的用途是直接把web端的html內容解析后展示在安卓手機上。應用場景很多,比如很多新聞類APP在web端編輯入庫后是html的格式,這時候如果想顯示在手機上,HtmlTextView就是一個很好的選擇,當然有人會說谷歌自己的TextView通過一些方法也可以實現,但是我試過,效果簡直不能再差,而且使用起來很復雜。這個HtmlTextView有多好,話不多說,直接上圖:

          在使用的時候,第一步是引入控件的依賴:

          repositories {
          jcenter()
          }
          
          dependencies {
          compile 'org.sufficientlysecure:html-textview:4.0'
          }

          引入依賴后有幾種不同的使用方式,根據自己實際的場景進行選擇:

          大部分的html標簽都已經支持:

          <p>
          <div> handled exactly like <p>
          <br>
          <b>
          <i>
          <strong> (bug on some Android versions: generates italic)
          <em> (bug on some Android versions: generates bold)
          <u>
          <tt>
          <dfn>
          <sub>
          <sup>
          <blockquote>
          <cite>
          <big>
          <small>
          <font color="..." face="...">
          <h1>, <h2>, <h3>, <h4>, <h5>, <h6>
          <a href="...">
          <img src="...">

          最后,一個最重要的問題,也是我最近使用遇到的最大的問題:

          當html里面有src或者href等的時候,如果不做處理,APP會出現無法跳轉至瀏覽器并且崩潰閃退的情況。解決這個問題的辦法就是在方法里添加對應的點擊事件,如下:

          實現新聞詳情的時候,安卓也有類似富文本的控件,但是使用webview或者textview等方法,每種方法各有優劣,不是很完美。今天給大家介紹一個安卓控件——HtmlTextView,實現詳情頁圖文混排的顯示。
          1.在gradle引入控件

          dependencies {
              compile 'org.sufficientlysecure:html-textview:4.0'
          }
          123

          2.在布局頁面使用上面的控件

          <org.sufficientlysecure.htmltextview.HtmlTextView
                      android:id="@+id/html_text"
                      android:layout_width="match_parent"
                      android:layout_height="match_parent"
                      android:textAppearance="@android:style/TextAppearance.Small" />
          12345

          3.在activity使用相關方法,此處是其他頁面網絡獲取解析傳遞過來的html內容,HtmlHttpImageGetter方法不需要手動編寫(較textview實現的時候不再需要重寫、繼承ImageGetter方法,可查看上篇博客)

          public class ContentActivity extends BaseActivity {
              private String htmlContents = null;
          
              @Override
              protected void onCreate(Bundle savedInstanceState) {
                  super.onCreate(savedInstanceState);
                  setContentView(R.layout.activity_content);
                  HtmlTextView htmlTextView = findViewById(R.id.html_text);
                  final Intent intent = getIntent();
                  Bundle bundle = intent.getExtras();
                  htmlContents = bundle.getCharSequence("contents").toString();
                  htmlTextView.setHtml(htmlContents, new HtmlHttpImageGetter(htmlTextView));
          
              }
          }
          123456789101112131415

          4.讓我們看一下最終實現的效果


          有相關疑問可以留言,感謝點贊轉發,禁止轉載


          上圖是視圖的開發指導,官方給了個鏈接。

          國內地址:

          https://developer.android.google.cn/guide/topics/ui/index.html

          view的使用

          "直譯"

          窗口中的所有視圖都排列在一棵樹中.

          可以通過代碼或通過在一個或多個XML布局中指定視圖樹來添加視圖.

          有許多專門的視圖子類可以充當控件,或者可以顯示文本,圖像或其他內容。
          

          創建視圖樹后,通常可能需要執行幾種類型的常見操作.



          "人話"

          窗口也就是windows,windows上有視圖"樹",我們在畫頁面時其實就是往視圖樹上添加view,當然,添加的方式即可以是xml也可以是代碼的形式。下面那兩句話,舉個例子就是TextView的常見類型操作setText();


          總結

          我們對整個view學習要建立一個體系,有一個脈絡。(自己腦海中有一個大體的脈絡,再去補充一個一個知識點)

          view的基本概念->view如何使用->如何自定義view

          之后我會分享我的"脈絡",希望大家多多支持.


          后續:

          第一期:view的簡單介紹。

          第二期:view添加到頁面的方式。

          下一期:view的屬性和方法。


          主站蜘蛛池模板: 蜜桃传媒视频麻豆第一区| 国产一区二区三区在线电影| 亚洲熟女综合色一区二区三区 | 怡红院一区二区三区| 日本免费一区二区久久人人澡| 国产激情一区二区三区四区 | 亚洲国产国产综合一区首页| 天天爽夜夜爽人人爽一区二区| 亚洲AV无码一区二区三区性色| 国产AV午夜精品一区二区入口 | 蜜桃视频一区二区三区| 久久久久人妻精品一区| 鲁大师成人一区二区三区| 亚洲一区二区三区播放在线| 中文字幕一区二区三区在线不卡| 亚洲熟女www一区二区三区| 国产精品538一区二区在线| 久久se精品动漫一区二区三区| 日韩精品无码一区二区三区四区| 亚洲高清偷拍一区二区三区| 精品无码一区二区三区亚洲桃色| 一区二区三区四区在线播放 | 中文字幕精品亚洲无线码一区| 无码人妻久久久一区二区三区| 国产99久久精品一区二区| 亚洲sm另类一区二区三区| 丰满人妻一区二区三区视频53| 亚洲av永久无码一区二区三区 | 国产精品亚洲一区二区无码 | 亚洲av一综合av一区| 精品一区二区三区高清免费观看| 无码av中文一区二区三区桃花岛| 亚洲一区二区成人| 精品一区二区久久| 怡红院AV一区二区三区| 亚洲av色香蕉一区二区三区| 亚洲av无码一区二区三区天堂古代| 久久婷婷色一区二区三区| 国产av一区二区三区日韩| 日本不卡免费新一区二区三区| 中文字幕日韩一区二区三区不|