Поддержка нескольких активных перекрывающихся видов поверхности в 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 не удастся