編輯: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));
}
}
在Andoird使用Android自帶的那些組件,像SlidingDrawer和DrawerLayout都是抽屜效果的菜單,但是在項目很多要實現的功能都收到And
主界面CheckBoxinListViewActivity.java代碼如下: 代碼如下: public class CheckBoxinListViewActi
ListView是android中最常用的控件之一。 在實際運用中往往會遇到一次性加載全部數據過多,需要分頁加載增加程序運行效率! 本demo是將更新的監聽放在l
1.盡量使用線性布局(LinearLayout)和相對布局(RelativeLayout),不要使用絕對布局。 2.盡量使用dip和sp,不要使用px。 3.為不