gpt4 book ai didi

java - 位图内存不足错误

转载 作者:行者123 更新时间:2023-12-01 11:35:29 25 4
gpt4 key购买 nike

我对此错误有疑问。

我从 URL 制作 favicon 解析器。我这样做是这样的:

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 张图片后,这段代码给了我 OutOfMemoryError 错误。我怎样才能解决这个问题?或者优化?因为在我显示此图标的列表中,可以有超过 20 或 40 个图标...

最佳答案

我想,你会使用universal image loader

给定代码 fragment 的方法

// Load image, decode it to Bitmap and return Bitmap synchronously 
ImageSize targetSize = new ImageSize(80, 50);
// result Bitmap will be fit to this size
Bitmap bmp = imageLoader.loadImageSync(imageUri, targetSize, options);

对于内存不足的情况,您可以在 list 文件中添加一行

<application
...
android:largeHeap="true"
...
>
</application>

关于java - 位图内存不足错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30035286/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com