使用Html.ImageGetter只检索一个图像?

时间:2012-03-21 13:47:10

标签: android html-parsing

我一直在使用Html.fromHtml()中的ImageGetter()接口从长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 :(得分:0)

ImageGetter中有一个布尔字段。在getDrawable()中,仅当布尔值为false时才获取图像,然后将其设置为true;否则返回null。

要完全避免解析HTML的其余部分,您无法使用Html.fromHtml()。相反,您可以尝试使用XMLPullParser。只需继续提取标记,直到获得<img>标记,此时获取其<src>属性的值。

但您可能必须正确处理非严格XHTML的输入。