Поддержка нескольких активных перекрывающихся видов поверхности в Android
в настоящее время я работаю над Android-приложением, которое нуждается в нескольких перекрывающихся SurfaceViews на одном экране.
чтобы быть точным, у меня есть два активных перекрывающихся SurfaceViews, один подключен к камере, а другой подключен к MediaPlayer. Он работает, но не стабильно. Иногда один из SurfaceViews не появляется.
Я видел нить от 2009(http://groups.google.com/group/android-developers/browse_thread/thread/08e7df2e96a7973d) это говорит перекрывающиеся SurfaceViews не поддерживаются в Android. Это все еще так? Кто-нибудь может поделиться опытом?
3 ответов
Я сам это выяснил. Вызов setZOrderOnTop (true) на SurfaceView, который я хочу иметь сверху, кажется, решает проблему
однажды я написал приложение с перекрывающимися линейными макетами. Он отлично работал, когда я перекрывал их с view.layout(l,t,r,b)
. Я не уверен, что это также работает с SurfaceViews. Как вы их перекрываете?
surface.setZOrderOnTop(true);
surface.setZOrderMediaOverlay(true);
Если двое из SurfaceView не установлены, будут проблемы окклюзии, если вы хотите один из них, чтобы быть на вершине, то только набор Setzorderontop (правда), но при этом она всегда будет в верхней части, и любое другое мнение будет заблокирован, если вы установите Setzorderontop и установить Setzordermediaoverlay, что Setzorderontop не удастся