位图的OutOfMemoryError [英] Bitmap OutOfMemoryError

查看:109
本文介绍了位图的OutOfMemoryError的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个关于此错误的问题。

I have question about this error.

我做的网址图标解析器。我这样做是这样的:

I make favicon parser from URLs. I do this like:

public class GrabIconsFromWebPage {
public static String replaceUrl(String url) {
    StringBuffer sb = new StringBuffer();
    Pattern p = Pattern.compile("https?://.+\\..+?\\/");
    Matcher m = p.matcher(url);
    while (m.find()) {
        sb.append(m.group());
    }
    return sb.toString();
}

public static String getFavicon(String url) throws IOException {
    try {
        Document doc = Jsoup.connect(url).get();
        Element element = doc.head().select("link[href~=.*\\.(ico|png)]").first();
        if (element != null) {
            if (element.attr("href").substring(0, 2).contains("//")) {
                return "http:" + element.attr("href");
            } else if (element.attr("href").substring(0, 4).contains("http")) {
                return element.attr("href");
            } else {
                return replaceUrl(url) + element.attr("href");
            }
        } else {
            return "";
        }
    } catch(IllegalArgumentException ex) {
        ex.printStackTrace();
    } catch(OutOfMemoryError er) {
        er.printStackTrace();
    }
    return "";
}

public static Bitmap getBitmapFromURL(String src) {
    try {
        URL url = new URL(src);
        HttpURLConnection connection = (HttpURLConnection) url.openConnection();
        connection.setDoInput(true);
        connection.connect();
        InputStream input = connection.getInputStream();
        Bitmap myBitmap = BitmapFactory.decodeStream(input);
        return myBitmap;
    } catch (IOException e) {
        e.printStackTrace();
        return null;
    }
}

}

和我如何从URL位图

Bitmap faviconBitmap = GrabIconsFromWebPage.getBitmapFromURL(
                                GrabIconsFromWebPage.getFavicon(
                                        bookmarkData.get(position).getUrl() // url from which I want to grab favicon
                                )
                        );

和上传20张照片后,该code给我的OutOfMemoryError。我该如何解决这个问题?或优化?的Cuz在我的名单,我显示这个图标,可以超过20或40网页图标...

And this code after uploading 20 images give me OutOfMemoryError. How can I fix this? Or optimize? Cuz in my list where I show this icons, can be more than 20 or 40 favicons...

推荐答案

这是与解析图标由我自己糟糕的主意。谷歌在我们面前做到了

It was bad idea with parsing icons by myself. Google did it before us

http://www.google.com/s2/favicons?domain= (域)

这篇关于位图的OutOfMemoryError的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆