Android: как отобразить изображение в текстовом представлении - PullRequest
0 голосов
/ 14 октября 2011

Как я могу отобразить изображение для HTML в текстовом представлении?Вот ресурс

<blockquote>小浪观剧团:<p>【郭德纲《今夜有戏-济公传》】@北京德云社 15周年庆@郭德纲 相声专场演出,最新一季《济公传》,天津卫视@今夜有戏 整合全程播出。 http://t.cn/asLuvf 点击进入“德云社15周年系列演出新浪独家视频专题”http://t.cn/aogRf9<br/><a href='http://ww3.sinaimg.cn/large/5e1f33eftw1dm3fva4u3lj.jpg' target='_blank' ><img src='http://ww3.sinaimg.cn/thumbnail/5e1f33eftw1dm3fva4u3lj.jpg'><\/a><\/p><blockquote><p><a href='javascript:Action(\"sinat:qq357068756@163.com\",\"RT:3368361715304896\",\"\")'><img src='http://www.shisoft.net/images/retweet.png' /><\/a><\/p>

Я знаю, что должен использовать Html.fromHtml (источник строки, Html.ImageGetter imageGetter, Html.TagHandler tagHandler)

Но я не знаю, как это сделатьполучить ImageGetter, кто-нибудь может помочь?

1 Ответ

4 голосов
/ 14 октября 2011

Это сработало для меня,

Реализация ImageGetter проста и проста; Вы передаете объект ImageGetter, который будет использоваться для извлечения изображений, которые позже будут использоваться для заполнения заполнителей. Чтобы получить изображения, объект ImageGetter должен реализовать метод getDrawable. Метод getDrawable должен возвращать объект Drawable, который заполнит заполнитель; но, если возвращается значение null, вместо него будет использоваться родовой заполнитель изображения (см. реализацию ниже).

Для ImageGetter вам необходимо переопределить метод ниже:

public Drawable getDrawable (String  source)

Чтобы получить изображения из ресурсов приложения сначала в текстовом файле, вставьте HTML-тег изображения, например, так:

<img src="my_image">

Обратите внимание, что "my_image" - это просто имя рисованного элемента, а не пути. Затем используйте этот код для преобразования текста с изображениями в TextView

  myTextView.setText(Html.fromHtml(myText, new ImageGetter() {                 
    @Override
    public Drawable getDrawable(String source) {
     Drawable drawFromPath;
     int path = myActivity.this.getResources().getIdentifier(source, "drawable", "com.package..."); 
     drawFromPath = (Drawable) myActivity.this.getResources().getDrawable(path);
     drawFromPath.setBounds(0, 0, drawFromPath.getIntrinsicWidth(), drawFromPath.getIntrinsicHeight());
     return drawFromPath;
    }
}, null));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...