Android — WebView Масштабирование / Панорамирование изображений

#android #webview

#Android #webview

Вопрос:

Мне нужна общая функциональность масштабирования и панорамирования изображения, которое больше экрана устройства. После долгих поисков я остановился на WebView в качестве решения, используя его встроенное масштабирование и панорамирование.

Существует проблема, которую я не смог решить с помощью WebView: я могу установить начальный масштаб WebView на некоторое значение, но я не нашел способа заставить WebView установить начальный уровень масштабирования, чтобы изображение просто соответствовало размеру, независимо от WebView и размера устройства. Другими словами, когда я впервые загружаю изображение, я хочу, чтобы оно всегда полностью отображалось независимо от размера изображения и устройства.

Есть идеи?

Кроме того, кажется, что это довольно распространенная функциональность, и я бы предположил, что существует какой-то компонент ImageView с функцией масштабирования / панорамирования, определенной лучшим в своем классе способом. Возможно, Google выпускает компонент, который они используют в своих собственных фотогалереях Android. Есть ли такая вещь? Я недостаточно квалифицирован, чтобы извлечь это из всей версии исходного кода Android.

Ответ №1:

Мы пока не выпустили для этого конкретный компонент, потому что это не то, что очень хорошо обобщает то, что хочет сделать большинство разработчиков. Простой случай просмотра фотографий, который вы описываете, примерно такой, какой он есть. (Возможно, мы когда-нибудь сделаем виджет библиотеки поддержки или что-то в этом роде для этого случая.) Помимо этого, приложения, как правило, имеют настраиваемые способы отображения и представления контента, который они хотят панорамировать и масштабировать. В Maps используется пользовательское рисование плиток и векторов, WebView визуализируется непосредственно из webkit и должен отображать положение и масштаб таким образом, чтобы это хорошо сочеталось с этим, новый календарь Android 4.0, который был продемонстрирован, расширяет или сжимает доступную область для текста и т. Д. При таких разных сценариях на самом деле не существует универсального решения, которое не было бы неоптимальным для большинства применений.

Тем не менее, то, что вы пытаетесь сделать, является одним из самых простых случаев, а WebView — это перебор. Это сообщение в блоге разработчиков Android и сопровождающий его пример кода должны направить вас на правильный путь.