【问题标题】:User Interface on Top Rajawali Surface View顶部 Rajawali 表面视图上的用户界面
【发布时间】:2018-07-24 00:55:14
【问题描述】:

谁知道如何在 Rajawali Surface View 上添加用户界面? 我检查了 rajawali 文档,但它不起作用

【问题讨论】:

    标签: rajawali 3d-rendering


    【解决方案1】:

    以下方法对我有用:创建要添加到布局中的 UI 元素,我使用 ConstraintLayout 作为容器。不要通过 xml 创建SurfaceView,而是以编程方式创建。以一种与所有其他 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);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-30
      • 1970-01-01
      • 2012-07-13
      • 1970-01-01
      相关资源
      最近更新 更多