我有一个解析XML饲料(新闻)的活动,并加载解析数据中的WebView(文字和图片的URL),这是内部的画廊部件。大图像内存
事情是这样的:
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, "");
一切工作正常,但有时新闻提要里有这样的大图。那么,除非你开始旋转手机,否则它们不会造成任何问题。经过几次方向变化之后,我们开心的Out Of Memory异常。
那么,在Android中,OOM总是藏在什么地方Bitmas附近,这就是为什么大多数人使用BitmapFactory与inSampleSize,或更多的东西异国情调。好吧,据说我可以下载和重新采样图像,然后从SD卡中加载它们。但现在我会尽量避免它。
无论如何,问题是 - 当他们在WebView中被加载到什么大的图像呢?有没有办法调整它们的尺寸(不仅仅是可视化)?有什么方法可以清除WebView onOrientationChange占用的内存(webview.freeMemory()实际上并没有帮助)。
不幸的是,我不得不使用更大的版本:(当用户点击图片 - 更大的版本弹出窗口花哨的“灯箱”方式 – Sver
在这种情况下,您可以使用SD卡作为“缩小缓冲区”或者在你的网站上创建缩略图,这样画廊会下载缩略图,全尺寸视图会使用原始图像,这可能是最好的方式(但要小心,你可以在全尺寸视图中再次遇到问题,尽管你当时只会显示一张图片) – Shlublu