谁知道如何在 Rajawali Surface View 上添加用户界面?我检查了 rajawali 文档,但它不起作用
问问题
113 次
1 回答
0
以下方法对我有用:创建要添加到布局中的 UI 元素,我使用 aConstraintLayout
作为容器。不要SurfaceView
通过 xml 创建,而是以编程方式创建。以一种与所有其他 UI 元素重叠并使用所有可用空间的方式创建它。这样,UI 元素仍然可见,即使从技术上讲它们应该被SurfaceView
前面的哪个隐藏。
下面是我的代码如何设置SurfaceView
. 请注意,constraintLayout 是其中还包含其他按钮的容器布局的名称。
surfaceView = new SurfaceView(getContext());
surfaceView.setFrameRate(30.0);
surfaceView.setRenderMode(ISurface.RENDERMODE_WHEN_DIRTY);
surfaceView.setSurfaceRenderer(YOUR_RENDERER);
surfaceView.setLayoutParams(new ConstraintLayout.LayoutParams(ConstraintLayout.LayoutParams.MATCH_CONSTRAINT, ConstraintLayout.LayoutParams.MATCH_CONSTRAINT));
surfaceView.setId(View.generateViewId());
constraintLayout.addView(surfaceView, 0);
ConstraintSet constraintSet = new ConstraintSet();
constraintSet.clone(constraintLayout);
constraintSet.connect(surfaceView.getId(), ConstraintSet.LEFT, ConstraintSet.PARENT_ID, ConstraintSet.LEFT);
constraintSet.connect(surfaceView.getId(), ConstraintSet.RIGHT, ConstraintSet.PARENT_ID, ConstraintSet.RIGHT);
constraintSet.connect(surfaceView.getId(), ConstraintSet.BOTTOM, ConstraintSet.PARENT_ID, ConstraintSet.BOTTOM);
constraintSet.connect(surfaceView.getId(), ConstraintSet.TOP, ConstraintSet.PARENT_ID, ConstraintSet.TOP);
constraintSet.applyTo(constraintLayout);
于 2018-07-24T20:36:13.193 回答