Получить только одно изображение с помощью Html.ImageGetter? - PullRequest
0 голосов
/ 21 марта 2012

Я использовал интерфейс ImageGetter () в Html.fromHtml () для получения URL-адресов изображений из длинной строки HTML. Но так как мне действительно нужно только одно изображение, я не хочу просматривать всю строку и искать изображения. Я просто хотел бы остановиться, когда найду первое изображение.

Есть предложения?

Html.fromHtml(html, new ImageGetter() {
    @Override
    public Drawable getDrawable(String source) {
        item.setImageUrl(source);
        return null;
    }
}, null);

РЕДАКТИРОВАТЬ: на данный момент я получаю только последнее изображение в строке HTML, поэтому ImageGetter будет получать только это изображение.

private String getLastImage (String htmlContent) {

    String img = "";
    try{
    img = htmlContent.substring(htmlContent.lastIndexOf("<img"));       
    }catch (Exception e) {
    e.printStackTrace();
    }   
    return img;
}

1 Ответ

0 голосов
/ 21 марта 2012

В вашем ImageGetter есть логическое поле. В getDrawable() извлекайте изображение, только если логическое значение равно false, а затем установите его на true; в противном случае верните ноль.

Чтобы полностью избежать синтаксического анализа остальной части HTML, вы не можете использовать Html.fromHtml(). Вместо этого вы можете попробовать использовать XMLPullParser. Просто продолжайте тянуть теги, пока не получите тег <img>, после чего получите значение его атрибута <src>.

Но вам, возможно, придется правильно обрабатывать входные данные, которые не являются строгими XHTML.

...