[解決済み] AndroidのTextViewにhtmlからインラインで画像を表示することは可能ですか?
質問
次のようなHTMLがあるとする。
<p>This is text and this is an image <img src="http://www.example.com/image.jpg" />.</p>
画像をレンダリングさせることは可能でしょうか?このスニペットを使用する場合。
mContentText.setText(Html.fromHtml(text));
を使用すると、黒い縁取りのあるシアン色のボックスが表示され、TextViewがimgタグが何であるかについて何らかの考えを持っていることを私に確信させます。
どのように解決するのですか?
もし、あなたが
のドキュメントを見ると
Html.fromHtml(text)
と書いてあるのがわかると思います。
任意の
<img>
タグは一般的な置き換え画像として表示され、プログラムがそれを処理して実際の画像に置き換えることができます。
この置き換えを自分でやりたくない場合は
を使うことができます。
Html.fromHtml()
メソッド
で、これは
Html.TagHandler
と
Html.ImageGetter
をパースするテキストと同様に引数として与えます。
あなたの場合、パースできるのは
null
というように
Html.TagHandler
と同じですが、独自の
Html.ImageGetter
を実装する必要があります。
しかし、これから起こる問題は
Html.ImageGetter
は同期的に実行される必要があり、ウェブから画像をダウンロードする場合はおそらく非同期的に実行したいと思うでしょう。 もし、アプリケーションのリソースとして表示させたい画像を
ImageGetter
の実装はずっとシンプルになります。 以下のような感じです。
private class ImageGetter implements Html.ImageGetter {
public Drawable getDrawable(String source) {
int id;
if (source.equals("stack.jpg")) {
id = R.drawable.stack;
}
else if (source.equals("overflow.jpg")) {
id = R.drawable.overflow;
}
else {
return null;
}
Drawable d = getResources().getDrawable(id);
d.setBounds(0,0,d.getIntrinsicWidth(),d.getIntrinsicHeight());
return d;
}
};
ソースの文字列をリソースIDにマッピングするための、よりスマートな方法を考え出したいと思うでしょうけど。
関連
-
[解決済み] Androidのテキストビューの周りにボーダーを付けるには?
-
[解決済み] Androidでアクティビティ起動時にEditTextにフォーカスが当たらないようにする方法
-
[解決済み] AndroidのListViewで画像を遅延ロードする方法
-
[解決済み] HTMLでBase64画像を表示する方法
-
[解決済み] AndroidでTextViewをスクロール可能にする
-
[解決済み] TextViewにHTMLを表示するには?
-
[解決済み] TextViewの中に複数のスタイルを持たせることは可能ですか?
-
[解決済み】AndroidでTextViewのfontFamilyを変更する方法
-
[解決済み] 通知をクリックした後にアプリケーションを開く
-
[解決済み] アンドロイドのdatepickerダイアログで最大の日付を設定するには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] android: imageview の画像を画面に合わせて伸縮させる
-
[解決済み] handler.postDelayed()を停止する。
-
[解決済み] 「KotlinとAndroidで「パラメータTを推測するのに十分な情報がありません。
-
[解決済み] Androidのadb logcatでTAG名で特定のメッセージを除外する方法は?
-
[解決済み] 複数のフィルタを持つBroadcastReceiverか、複数のBroadcastReceiverか?
-
[解決済み] 非ActivityクラスでContextを取得する [重複].
-
[解決済み] Androidアプリケーションのヒープサイズを大きくするには?
-
[解決済み] Gradleでビルドタイプを使用し、ContentProviderを使用する同じアプリを1つのデバイスで実行する。
-
[解決済み] RecyclerViewのアイテムに波及効果を追加する
-
[解決済み] ProjectScopeServices に Factory タイプのサービスはありません。