Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發實例 >> Android中文API(130) —— Html

Android中文API(130) —— Html

編輯:Android開發實例

前言

  本章內容是android.text.Html,版本為Android 3.2 r1,翻譯來自"pignut。
 

  

 

 

Html

譯者署名: pignut

譯者鏈接:www.pignut.net

版本:Android 3.2

 

結構

繼承關系

public class Html extends Object

      

java.lang.Object

       android.text.Html

 

類概述

該類主要用來格式化html格式的文本,像浏覽器一樣對html標簽進行解析,渲染輸出,但並不是所有的標簽都被支持!(譯者注:當然你自定義的標簽默認肯定不被支持,但可以通過實現Html.TagHandler這個接口來自我解析。下面會講到。)

 

 

內部類

interface     Html.ImageGetter

用來檢索HTML中的<img>標簽。(譯者注:如果實現了這個接口,當解析的時候遇到<img> 標簽時會回調ImageGetter的getDrawable(String source)方法,並返回一個Drawable對象,該方法參數為<img>標簽的src屬性的值)

 

interface     Html.TagHandler

用來通知當解析器遇到無法識別的標簽時該作出何種處理

 

 

公共方法

public static Spanned fromHtml (String source)

返回通過TagSoup (TagSoup 是一個Java開發符合SAX的HTML解析器 授權協議)解析器解析之後的可直接顯示的文本,任何<img>則由默認的一般圖片所替代,當然也可以通過實現Html.ImageGetter接口來顯示真正的圖片。

參數

source      待處理的html文本

 

         public static Spanned fromHtml (String source, Html.ImageGetter imageGetter, Html.TagHandler tagHandler)

同上,不同的是當遇到img標簽,或解析器無法識別的標簽時分別觸發注冊的兩個對象來進行處理。

參數

source               為待處理的html文本

imageGetter    Html.ImageGetter對象

tagHandler       Html.TagHandler 的

 

public static String toHtml (Spanned text)

該方法完全可以理解為fromHtml()的可逆函數,將Spanned 類型的文本還原為HTML文本。

 

補充

       文章精選

              android開發:TextView中顯示HTML和圖片

              android TextView HTML富文本應用

       示例代碼

public class Main extends Activity {

 

   @Override

   protected void onCreate(Bundle savedInstanceState) {

      super.onCreate(savedInstanceState);

      setContentView(R.layout.main);

      TextView tv = (TextView) findViewById(R.id.demo);

     

      // 貌似都不支持HTML標簽的屬性,及CSS樣式,下面使用到的字體顏色都不被支持

      //String html = "<h2>html測</h2><pstyle='color:red;'>這是測試內容</p><p><img src='/uploads/allimg/2011/10/10/23052V0E-1.gif'></p>";

String html = "<h2>html測試</h2><p font='red'>這是測試內容</p><p><img src='/uploads/allimg/2011/10/10/23052V0E-1.gif'></p>";

     

      tv.setText(Html.fromHtml(html,new Html.ImageGetter(){

 

        @Override

        public Drawable getDrawable(String source) {

           Drawable myDrawable = null;

           try {

              myDrawable = Drawable.createFromStream(new URL(source).openStream(), "baidu_sylogo1.gif");

           } catch (MalformedURLException e) {

              e.printStackTrace();

           } catch (IOException e) {

              e.printStackTrace();

           }

          

           myDrawable.setBounds(0, 0, myDrawable.getIntrinsicWidth(), myDrawable.getIntrinsicHeight());

          

           return myDrawable;

        }},null));

   }

 

}

 

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved