1

2SurfaceViewsと 1buttonがあり、添付のスクリーンショットのように配置する必要があります。私は電話SurfaceView BすることでトップになることができましたSurfaceView AsurfaceViewB.setZOrderOnTop(true);

問題は、それを行うと、SurfaceView B実際のウィンドウの上に配置され、その上にボタンを配置できなくなったことです(たとえば、button.bringToFront()ここでは呼び出しは役に立ちません)。

このレイアウトをどのように達成できるか考えていますか?ここに画像の説明を入力

4

1 に答える 1

1

を使用setZOrderMediaOverlay(boolean)して、SurfaceView A の上に SurfaceView B を配置できますが、まだウィンドウの後ろにあります。ドキュメントから:リンク:

public void setZOrderMediaOverlay (boolean isMediaOverlay)

サーフェス ビューのサーフェスを、ウィンドウ内の別の通常のサーフェス ビューの上に配置するかどうかを制御します (ただし、ウィンドウ自体の背後にあります)。これは通常、下にあるメディア サーフェス ビューの上にオーバーレイを配置するために使用されます。

これは、サーフェス ビューを含むウィンドウがウィンドウ マネージャーにアタッチされる前に設定する必要があることに注意してください。

これを呼び出すと、setZOrderOnTop(boolean) への以前の呼び出しが上書きされます。

したがって、次のことがうまくいくはずです。

surfaceViewB.setZOrderMediaOverlay(true);
于 2013-11-05T06:57:05.023 に答える