画面にHTMLを表示させたい - 検討結果
対象者
- Android開発者
- TextView等でHTMLを表示させたくなった
結論
- 簡単な装飾ぐらいはTextViewで十分
- 対応するタグが多くなる場合は、WebViewを使ったほうがシンプル
根拠
TextView.setText(fromHtml(String))で処理できるのは以下のとおり。(参考文献より引用)
- br
- p
- div
- em
- b
- strong
- cite
- dfn
- i
- big
- small
- font
- blockquote
- tt
- monospace
- a
- u
- sup
- sub
- h1-6
span,ul,li,ol,tableは対応していないみたい。
文字列処理(参考文献参照)で対応させようかと思ったが、骨が折れるばかりなので、複雑なことはせずにWebViewとしたほうがシンプル。
その他検討した内容
tableタグを対応していないので、TableRow+TextViewにて代替実装をしようと考えたが、
複数テーブルが存在する場合、全体のテーブルで共通の列サイズとなってしまうため、却下した。
参考文献
- Html List tag not working in android textview. what can i do? - Stack Overflow
- ul,liに対応するサンプルスクリプト等あり
- :Tips TextView を使いこなそう 〜 表示編 〜 その2 - - Google Android - 雑記帳
- 包括的に説明されているので、必見
周辺問題のための参考文献
- WebViewにおけるオブジェクトの配置問題に対する対処法のヒント
- http://blog.yagni.jp/archives/294
- 周辺問題の解決のために読んでおいたほうがよい