2012-03-21 75 views
0

如果已经使用Html.fromHtml()中的ImageGetter()接口从长html字符串中检索图像url,但是因为我只是真的需要一个图像,所以我不想浏览整个字符串并查找图像。当我找到第一张图像时,我只想停下来。只用Html.ImageGetter检索一张图片?

有什么建议吗?

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

编辑:现在我只检索HTML字符串中的最后一个图像,所以ImageGetter将只检索该图像。

私人字符串getLastImage(字符串htmlContent){

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

回答

0

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

要完全避免解析其余的HTML,您不能使用Html.fromHtml()。相反,您可以尝试使用XMLPullParser。只需继续拉动标签,直到获得<img>标签,此时获得其<src>属性的值。

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

+0

嘿,谢谢你的回应。我已经尝试过这种方法,它可以很好地设置图像,但ImageGetter仍然会运行整个Html字符串并查找图像(即使它只会返回null)。 – Slickelito 2012-03-22 06:42:48

+0

@NiklasBjörkholm,编辑我的答案。 – 2012-03-22 07:39:50

+0

好吧,这是一种方法做到这一点我猜,但现在做了一个方法来缩短HTML字符串,只检索最后的图像部分(如果可用)。 – Slickelito 2012-03-23 07:05:17