Android中TextView支持的HTML标记.docx
文本预览下载声明
Android:TextView支持的HTML标签——自定义标签——响应超链接Android中只支持下列html标签:Android TextView 支持的HTML标签a href=...bbigblockquotebrcitedfndiv align=...emfont size=... color=... face=...h1h2h3h4h5h6iimg src=...psmallstrikestrongsubsupttubr ?// ?换行/br不可用那如果我们还要实现一些标签怎么办呢那则需要自己实现TagHandler接口了。实现的概要说明:Step one 继承 TagHandler接口Step Two 实现public void handleTag(boolean opening, String tag, Editable output,XMLReader xmlReader)?接口被调用的过程:?系统在解析html文本发现tag时调用一次如html接口传递的参数为 handleTag(true,”html”,output , xmlReader )?发现tag的闭合时,调用接口接口传递的参数为 handleTag(false,”html”,output , xmlReader )?下面是一个实际执行的例子给 strike 标签中的文字加上横线publicclass MyHtmlTagHandler implements TagHandler {publicvoid handleTag(boolean opening, String tag, Editable output, XMLReader xmlReader) {if(tag.equalsIgnoreCase(strike) || tag.equals(s)) { processStrike(opening, output); } }privatevoid processStrike(boolean opening, Editable output) {int len = output.length();if(opening) { output.setSpan(new StrikethroughSpan(), len, len, Spannable.SPAN_MARK_MARK); } else { Object obj = getLast(output, StrikethroughSpan.class);int where = output.getSpanStart(obj); output.removeSpan(obj);if (where != len) { output.setSpan(new StrikethroughSpan(), where, len, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); } } }private Object getLast(Editable text, Class kind) { Object[] objs = text.getSpans(0, text.length(), kind);if (objs.length == 0) {returnnull; } else {for(int i = objs.length;i0;i--) {if(text.getSpanFlags(objs[i-1]) == Spannable.SPAN_MARK_MARK) {return objs[i-1]; } }returnnull; } }}?显示超链接,并响应事件publicclass HTMLIMGActivity extends Activity {private TextView tv_img; String html = h1text3:/h1 +font color=#00FF00the content is hehe/fontbr +a href=link to google~~~/a; @Overridepublicvoid onCreate(Bundle savedInst
显示全部