Android: Возможно ли иметь два поверхностных изображения друг на друга?
Моя идея состоит в том, чтобы иметь два поверхностных экрана. Один объект surfaceView, который будет содержать изображение (скажем, ImageSurgaceView) и вторую поверхность, лежащую поверх первой, которая содержит аннотации (например AnnotationSurfaceView), такие как круг, прямоугольник и т.д. Теперь мне нужно сопоставить эти поверхностные виды, чтобы высота, ширина и то же самое, и поверхностный вид должен двигаться на перетаскивании, то есть делиться событиями касания. Если быть точным, когда я перемещаю изображение, аннотации также должны перемещаться вверх.
Теперь я не уверен, что это возможно в Android. Может ли кто-нибудь рассказать или поделиться какой-либо информацией об этом. У меня нет идеи реализации, и поэтому у меня нет никакого конкретного кода. Более того, я не мог найти ничего подобного.
Спасибо за помощь.
Ответы
Ответ 1
Да, это возможно. Вы можете добавить оба SurfaceView
в качестве дочерних элементов FrameLayout
. Вы также захотите вызвать setZOrderMediaOverlay на одном или обоих ваших SufaceView
, чтобы указать, как они слоируются.
Кроме того, это может быть графический интенсивный алгоритм, который вы описываете. Подумайте о добавлении атрибута приложения AndroidManifest.xml
android:hardwareAccelerated="true"
.
Наконец, просто настройте пользовательский OnTouchListener
для обработки событий перетаскивания. Используйте MotionEvent.getRawX()
и MotionEvent.getRawY()
, чтобы получить точку касания, и используйте это, чтобы манипулировать холстами.