gpt4 book ai didi

android - WebView 中的大图像导致内存不足

转载 作者:行者123 更新时间:2023-11-29 18:17:50 26 4
gpt4 key购买 nike

我有解析 XML 提要(带有新闻)并在 WebView 中加载已解析数据(文本和图像 url)的 Activity ,这些数据位于图库小部件内。

像这样:

mimeType = "text/html";

encoding = "utf-8";

String html = "<img src=\""
+ newsImageUrl.get(position)
+ "\" style=\"max-width:200px; max-height:200px;\" align=\"left\""
+ "/>" + newsDescription.get(position);

data.loadDataWithBaseURL("", html, mimeType, encoding, "");

一切正常,但有时在新闻提要中有这个大图像。好吧,除非您开始旋转手机,否则它们不会造成任何问题。在几次方向更改之后,我们遇到了内存不足异常。

好吧,在 Android 中,OOM 总是隐藏在 Bitmas 附近的某个地方,这就是为什么大多数人将 BitmapFactory 与 inSampleSize 或更奇特的东西一起使用的原因。嗯,据推测,我可以下载图像并重新采样,然后从 SD 卡加载它们。但现在我会尽量避免它。

无论如何,问题是——在 WebView 中加载大图像时如何处理它们?有没有办法调整它们的大小(不仅在视觉上)?有什么方法可以清除 WebView onOrientationChange 占用的内存(webview.freeMemory() 并没有真正帮助)。

最佳答案

其实,你没有那么多选择。释放内存无济于事,因为您的图像仍在内存中分配,而且图像太大而放不下。

唯一可行的方法是在显示它们之前(将它们按比例缩小到 SD 并在本地显示这些复制而不是源图像)。

这取决于您是否必须在某些时候使用全尺寸图像。否则,将它们保持这么大绝对没有意义。

关于android - WebView 中的大图像导致内存不足,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7227372/

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