Android: самый простой способ заставить WebView отображать растровое изображение? - PullRequest
7 голосов
/ 31 мая 2010

У меня есть несколько изображений, которые я загрузил из удаленного источника, которые хранятся в растровых переменных, и я хочу их отобразить. В дополнение к переключению между этими изображениями пользователь также должен иметь возможность масштабировать и панорамировать их. Моя первая идея состояла в том, чтобы как-то передать их через намерение во встроенное приложение галереи, но это не представляется возможным. Решение, которое предлагается в нескольких местах, использует WebView, так как он уже поддерживает масштабирование и панорамирование. Мой вопрос: как мои растровые данные попадают в WebView? Должен ли я сначала записать его в файл, который позже придется удалить, или есть более простой способ?

Или есть еще лучшие способы достижения моей главной цели - отображения растровых данных в виде масштабируемых и панорамируемых изображений?

Ответы [ 2 ]

4 голосов
/ 31 мая 2010

Вы можете просто использовать веб-просмотр для удаленного просмотра изображения. Вам больше не нужно сохранять изображение в файл. Вот пример кода.

myWebView.getSettings().setBuiltInZoomControls(true); //to get zoom functionalities

String url = "http://....."; //url of your image

String x= "<html><head><meta name=\"viewport\" content=\"width=device-width, minimum-scale=1.0\"/><style type=\"text/css\">html, body {margin: 0;padding: 0;} img {border: none;}</style><head><body style=\"background: black;\"><table><tr><td align=\"center\"><img src=\"" + url + "\" /></td></tr></table></body></html>";

myWebView.loadData(x, "text/html", "UTF-8");

Что касается переключения изображений, вы можете просто изменить значение URL и снова вызвать loadData веб-просмотра.

0 голосов
/ 15 июня 2010

В конце концов, я не был удовлетворен WebView, поэтому в итоге я создал собственную активность для просмотра изображений. Дальнейшие описания того, как я это сделал, можно найти в этом посте в группах Google .

...