【问题标题】:Retrieve only one image with Html.ImageGetter?仅使用 Html.ImageGetter 检索一张图像?
【发布时间】:2012-03-21 13:47:10
【问题描述】:

我一直在使用 Html.fromHtml() 中的 ImageGetter() 接口从一个长的 html 字符串中检索图像 url。但由于我真的只需要一张图像,我不想遍历整个字符串并寻找图像。当我找到第一张图片时,我只想停下来。

有什么建议吗?

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

编辑:现在我只检索 html 字符串中的最后一张图像,因此 ImageGetter 只会检索该图像。

私有字符串 getLastImage(String htmlContent){

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

【问题讨论】:

    标签: android html-parsing


    【解决方案1】:

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

    为了完全避免解析 HTML 的其余部分,您不能使用Html.fromHtml()。相反,您可以尝试使用XMLPullParser。继续拉标签直到你得到一个&lt;img&gt;标签,此时获取它的&lt;src&gt;属性的值。

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

    【讨论】:

    • 您好,感谢您的回复。我已经尝试过该方法,它可以很好地设置图像,但 ImageGetter 仍将运行整个 Html 字符串并查找图像(即使它只会返回 null)。
    • 好吧,我猜这是一种方法,但现在制作了一种方法来缩短 html 字符串以仅检索最后一个图像部分(如果可用)。
    猜你喜欢
    • 2013-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-05
    • 1970-01-01
    • 2019-01-09
    • 2021-12-07
    • 2016-11-23
    相关资源
    最近更新 更多