@dizar47

Как сделать снимок содержимого WebView?

Nexus 5. Android Lollipop 5.1. Xamarin.
Я использую этот код для сохранения диалогов с m.vk.com в виде изображений. Это именно не скриншоты , а снимок содержимого WebView. Иногда они выходят высотой в 20000px, т.е. значительно больше видимой области WebView. Раньше всё работало хорошо, но с недавнего времени снимок имеет прежний размер, но на нём лишь видимая область WebView и куча серого фона. Я подорзреваю, что причина в обновлении WebView. Как это можно исправить?

public override void OnPageFinished (WebView view, string url)
		{			
			Picture picture = view.CapturePicture ();
			Bitmap bmp = Bitmap.CreateBitmap (picture.Width, picture.Height, Bitmap.Config.Argb8888);
			Canvas canvas = new Canvas (bmp);
			picture.Draw (canvas);
			MainActivity.Save(bmp);
}


UPD. Удалил все обновления WebView и всё работает как раньше. Но решение крайне сомнительно.
  • Вопрос задан
  • 304 просмотра
Пригласить эксперта
Ответы на вопрос 2
Neuroware
@Neuroware
Программист в свободное от работы время
обычно такой функционал под чистую не вырезают (если только не подумали что это была бага), поэтому скорее всего вынесли в какую то отдельную функцию.
Ответ написан
Комментировать
@dizar47 Автор вопроса
UPD:
Перед созданием WebView нужно вызвать эту статическую процедуру
WebView.EnableSlowWholeDocumentDraw();
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы