У меня есть некоторые изображения, которые я загрузил из удаленного источника, сохраненного в Растровых переменных, и я хочу отобразить их. В дополнение к переключению между этими изображениями пользователь должен также смочь масштабировать и панорамировать их. Моя первая идея состояла в том, чтобы так или иначе передать их через намерение к встроенному приложению галереи, но это, кажется, не возможно. Решение, которое предлагается в нескольких местах, использует веб-представление, так как оно уже поддерживает изменение масштаба и панорамирование. Мой вопрос состоит в том, как мои Растровые данные входят в веб-представление? Я должен записать это в файл сначала, который я должен был бы удалить снова позже или являюсь там более легким путем?
Или есть ли еще лучшие способы выполнить мою главную цель, которая отображает Растровые данные как zoomable и panable изображения?
Я не был удовлетворен WebView в конце концов, поэтому я закончил созданием своей собственной Activity для просмотра изображений. Дальнейшее описание того, как я это сделал, можно найти в этом сообщении на google groups.
Вы можете просто использовать веб-просмотр для прямого удаленного просмотра изображения. Вам больше не нужно сохранять изображение в файле. Вот пример фрагмента кода.
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 веб-просмотра.