LoginSignup
8
7

More than 5 years have passed since last update.

TextViewにHTMLのSRCタグを使って画像を載せる

Last updated at Posted at 2014-03-04

ドキュメント眺めてたら気になって探してみたらタイトルみたいな事が出来る方法を見つけました。

イメージ

Screenshot

MainActivity.java
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        TextView tv = (TextView) findViewById(R.id.textView);
        Html.ImageGetter imageGetter = new Html.ImageGetter() {
            @Override
            public Drawable getDrawable(String source) {
                Log.d(TAG, "source:" + source);
                int resId = 0;
                if (source.equalsIgnoreCase("droid")) {
                    resId = R.drawable.ic_launcher;
                } else {
                    throw new IllegalArgumentException();
                }
                Drawable drawable = getResources().getDrawable(resId);
                drawable.setBounds(0, 0, 40, 40);
                return drawable;
            }
        };
        String origString = "Hello world<img src='droid'>";
        Spanned spanned = Html.fromHtml(origString, imageGetter, null);
        tv.setText(spanned);
    }

Html.fromHtmlにコールバックを渡して、htmlタグから渡されたsrc名に応じてDrawableを返すだけです。

注意

drawable.setBounds()忘れると何も表示されないです。

8
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
7