我需要讓我的 libGDX GlSufraceView 透明,并有機會在上面添加一些 android 視圖。早些時候我使用了下面的代碼:if (graphics.getView() instanceof SurfaceView) { GLSurfaceView glView = (GLSurfaceView) graphics.getView(); glView.setZOrderOnTop(true); glView.getHolder().setFormat(PixelFormat.RGBA_8888);}但是,這段代碼并沒有讓我有可能在上面添加 android 視圖。經(jīng)過簡短的研究,我找到了替代品:glView.setZOrderMediaOverlay(true);. 使用這行代碼,我可以顯示表面上方的任何視圖,但透明變?yōu)楹谏?。我認為這個問題是由于我的代碼是在 setRenderer(...) 之后啟動的。在我在 gdx-backend-android 中找到包含 setRenderer(...) 的方法之后。片刻之后,我下載了 libGDX 源代碼并在 setRenderer(...) 之前添加了幾行,但不幸的是它沒有幫助,情況還是一樣。我正在嘗試的代碼:1)GLSurfaceView20 view = new GLSurfaceView20(application.getContext(), resolutionStrategy, config.useGL30 ? 3 : 2);view.setZOrderOnTop(true);if (configChooser != null) view.setEGLConfigChooser(configChooser);else view.setEGLConfigChooser(config.r, config.g, config.b, config.a, config.depth, config.stencil);view.getHolder().setFormat(PixelFormat.RGBA_8888);view.setRenderer(this);view.setRenderMode(GLSurfaceView.RENDERMODE_WHEN_DIRTY);return view;2)GLSurfaceView20 view = new GLSurfaceView20(application.getContext(), resolutionStrategy, config.useGL30 ? 3 : 2);if (configChooser != null) view.setEGLConfigChooser(configChooser);else view.setEGLConfigChooser(config.r, config.g, config.b, config.a, config.depth, config.stencil);view.setZOrderOnTop(true);view.getHolder().setFormat(PixelFormat.RGBA_8888);view.setRenderer(this);return view;3)GLSurfaceView20 view = new GLSurfaceView20(application.getContext(), resolutionStrategy, config.useGL30 ? 3 : 2);if (configChooser != null) view.setEGLConfigChooser(configChooser);else view.setEGLConfigChooser(config.r, config.g, config.b, config.a, config.depth, config.stencil);view.getHolder().setFormat(PixelFormat.RGBA_8888);view.setZOrderMediaOverlay(true);view.setEGLContextClientVersion(2);view.setRenderer(this);return view;我也發(fā)現(xiàn)關(guān)于該主題的主題很少,但沒有正確的答案。有可能這樣做嗎?
是否可以在沒有 setZOrderOnTop(true) 的情況下使 SurfaceView 透明?
慕碼人8056858
2021-06-14 13:12:01