5

背景としてドローアブルを備えたGLSurfaceViewがありますが、surfaceView.setZOrderOnTop(true)なしでレンダリングすると、背景のみが表示されます。

GLSurfaceViewの上で静的TextViewが使用されているため、setZOrderOnTop(true)の使用を避ける必要があります。

これを機能させるための提案はありますか?

4

4 に答える 4

9

GLSurfaceViewは実際には背景を持つことができません。サーフェスビューが機能する方法は、アクティビティのウィンドウに穴を開けて、背後に別のサーフェスを表示することです。setZOrderOnTop(true)を設定すると、サーフェスがアクティビティのウィンドウの上に移動します。

于 2010-10-02T04:21:43.993 に答える
7

false!あなたはそれを行うことができます。それがどのように機能するかを示すための単なる例。

glRenderer  = new OpenGLRenderer(context);
view = new GLSurfaceView(context);
view.setEGLConfigChooser(8, 8, 8, 8, 16, 0);
view.setRenderer(glRenderer);
view.getHolder().setFormat(PixelFormat.RGBA_8888);
view.getHolder().setFormat(PixelFormat.TRANSLUCENT);
view.setRenderMode(GLSurfaceView.RENDERMODE_CONTINUOUSLY);

次に、framelayoutを使用して、glsurfaceviewの下にビューを配置します。

于 2011-02-19T11:33:32.267 に答える
2

setZOrderMediaOverlay(true);を試してください。これにより、glレイヤーが背景の上、ウィンドウの下に配置されます。

于 2012-04-04T13:51:26.107 に答える
1

GLSurfaceViewは単なる別のビューなので、FrameLayoutを使用してGLSurfaceViewをImageView(またはドローアブルの表示に使用しているもの)の上に配置してみませんか。

于 2010-10-02T01:51:34.263 に答える