У меня есть действие, которое анализирует XML-канал (с новостями) и загружает проанализированные данные (текст и URL-адрес изображения) в WebView, которые находятся внутри виджета галереи.
Примерно так:
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 () на самом деле не помогает).