Android – Как накладывать изображения в WebView?

Я пытаюсь наложить несколько изображений [чтобы сформировать план здания с возможным увеличением]. Суть в том, чтобы выбирать, какие изображения каждый раз накладывать, в зависимости от выбранных фильтров [персонал, оборудование ...].

После проведения исследований я реализовал масштабирование с помощью WebView, но не нашел способа заставить это веб-представление одновременно принимать разные изображения [что возможно с ImageView с использованием LayerDrawable].

Есть ли способ добиться этого? или мне просто воткнуть ImageViews и найти способ реализовать в нем Zoom?? Надеюсь, мой вопрос понятен и не слишком глуп, так как я только начинающий :).

Спасибо за вашу помощь!!


person Ahamza    schedule 19.03.2013    source источник


Ответы (2)


Несмотря на то, что вы можете размещать несколько ImageView друг над другом, если вы хотите сделать это эффективным и многофункциональным (увеличение масштаба, панорамирование), вам необходимо создать свой собственный компонент либо на основе View, либо на основе SurfaceView.

Лично я считаю, что SurfaceView здесь излишество, должно быть достаточно подкласса простого представления. Вам нужно вручную рисовать слои из растровых изображений на холсте методом onDraw() представления.

Затем вы можете использовать GestureDetector или ScaleGestureDetector, чтобы добавить масштабирование путем масштабирования холста с помощью аффинных преобразований.

person EvilDuck    schedule 19.03.2013
comment
Спасибо за совет ... Я тоже начал копать таким образом, и я думаю, что это лучшее, что можно сделать на данный момент ... Я был бы признателен, если бы у вас есть несколько руководств о том, как это сделать .. - person Ahamza; 19.03.2013
comment
Спасибо за вашу заботу ! Мне уже удалось сделать это с помощью каких-то прозрачных скользящих меню :D У меня есть POT, чтобы представить сейчас, поэтому я просто оставлю детали для POC :D - person Ahamza; 21.03.2013

Используйте RelativeLayout для начала.

Вы можете использовать ViewGroup.addView(View child, int index, ViewGroup.LayoutParams params) или вариант вместе с ViewGroup.removeView(View view) или ViewGroup.removeViewAt(int index).

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

person Furqi    schedule 19.03.2013
comment
Я уже видел этот ответ здесь link, но я думаю, что это не то, что я пытаюсь сделать. Я не хочу каждый раз выбирать изображение, а отображать много изображений одновременно... Извините, если я неправильно понял ваш ответ и все равно спасибо.. - person Ahamza; 19.03.2013