ホームページ > 記事 > ウェブフロントエンド > TextView は HTML タグ_html/css_WEB-ITnose を使用します
TextView でのリッチテキストの実装については、Html を使用する方法と、SpannableString を使用する方法があります
SpannableString は面倒なので、こちらを参考にしてください:
http://www.chawenti .com/articles /16016.html
TextView での Html の使用については、このブログを参照してください
http://blog.csdn.net/johnsonblog/article/details/7741972#comments
String クラスCharSequence のサブクラスです。CharSequence サブクラスには Spanned というインターフェイスがあり、これを使用して HTML を TextView に表示できます。ただし、上記の Android ソース コードのコメントでは、TextView が HTML のような書式設定を受け入れないことが述べられています。
android.text.Html クラスは合計 3 つのメソッドを提供しており、これらは Android ヘルプ ドキュメントで確認できます。
public static Spanned fromHtml (文字列ソース)
public static Spanned fromHtml (String source, Html.ImageGetter imageGetter, Html.TagHandler tagHandler)
public static String toHtml (Spanned text)
最初のものはよく使われますメソッド:
TextView tv=(TextView)findViewById(R.id.textView1); String html="<html><head><title>TextView使用HTML</title></head><body><p><strong>强调</strong></p><p><em>斜体</em></p>" +"<p><a href=\"http://www.dreamdu.com/xhtml/\">超链接HTML入门</a>学习HTML!</p><p><font color=\"#aabb00\">颜色1" +"</p><p><font color=\"#00bbaa\">颜色2</p><h1>标题1</h1><h3>标题2</h3><h6>标题3</h6><p>大于>小于<</p><p>" + "下面是网络图片</p><img src=\"http://avatar.csdn.net/0/3/8/2_zhang957411207.jpg\"/></body></html>"; tv.setMovementMethod(ScrollingMovementMethod.getInstance());//滚动 tv.setText(Html.fromHtml(html));
画像の表示を実現するには、Html.fromHtml の 2 番目の再構築メソッドを使用する必要があります:
public static Spanned fromHtml (String source, Html.ImageGetterimageGetter, Html.TagHandler tagHandler)
Html.ImageGetter はインターフェイスであり、このインターフェイスを実装し、その getDrawable(String source) メソッドで画像の Drawable オブジェクトを返す必要があります。
ImageGetter imgGetter = new Html.ImageGetter() { public Drawable getDrawable(String source) { Drawable drawable = null; URL url; try { url = new URL(source); drawable = Drawable.createFromStream(url.openStream(), ""); //获取网路图片 } catch (Exception e) { return null; } drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable .getIntrinsicHeight()); return drawable; }};
ここでは主に Html.ImageGetter インターフェイスを実装し、画像の URL アドレスを通じて対応する Drawable インスタンスを取得します。
上記の紹介はインターネット上の画像を表示するものですが、ローカル画像を表示する方法:
ImageGetter imgGetter = new Html.ImageGetter() { public Drawable getDrawable(String source) { Drawable drawable = null; drawable = Drawable.createFromPath(source); //显示本地图片 drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable .getIntrinsicHeight()); return drawable; }};
ここでは、ソースをローカル画像のパスに変更するだけです:
文字列ソース;
ソース。 =getFilesDir()+"/ic_launcher.png";
/////////////////////////////////// //////////////////////////////////////////////// / ///////////////////////////////////////
http://www.jb51.net/article/36643.htm
Html クラス クリック タグの処理を処理するインターフェイス クラスがあります。したがって、このインターフェイスを実装して、定義したタグ タイプを解析できます。
b040abc0907b2abf3408915a666be355 タグをカスタマイズしてインターフェイスを実装します
/** * Is notified when HTML tags are encountered that the parser does * not know how to interpret. */ public static interface TagHandler { /** * This method will be called whenn the HTML parser encounters * a tag that it does not know how to interpret. */ public void handleTag(boolean opening, String tag, Editable output, XMLReader xmlReader);
次に、プロジェクト内でメソッドを呼び出します:
textView.fromHtml("Click b040abc0907b2abf3408915a666be355here3d268a49d0b56bca1ed2d4a0b438f157ゲームにジャンプ",null, new GameTagHandler()));
textView.setClickable(true);
textView.setMovementMethod(LinkMovementMethod.getInstance());