我设法创建了一个允许我预览房间的类(由 SurfaceView 支持),到目前为止一切正常,代码工作。现在我想知道是否可以在此 Surface 上创建按钮(或更一般地说是任何其他对象)。
我尝试使用 setContentView (my_layout) 加载布局,但这样做未加载(或至少未显示)SurfaceView 对象。所以我似乎明白,你只能加载两者之一,或者我错过了什么?
抱歉英语不好,但这段文字是由谷歌翻译生成的。
您需要做的是创建一个框架布局并添加按钮。或者使用 addContentView 构建您的视图
LayoutInflater inflater = getLayoutInflater();
getWindow().addContentView(inflater.inflate(R.layout.main, null), new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));
您可以创建具有透明背景的布局并将其放在表面视图上方。
好事是在其中创建一个FrameLayout
包含 2 个元素的元素。第一个是你的 SurfaceView 与 match_parent 的宽度和高度,所以它占据了整个 parent FrameLayout
。
第二个是具有透明背景的布局,例如可以占据父 FrameLayout 的一部分。
所以你的 SurfaceView 首先被创建,在它上面会有你的透明布局和按钮。
这可能适用于某种控制面板或其他东西,但如果您想要一种增强现实,您可以查看适用于 Android 的 OpenCV SDK,他们确实会更改相机预览图片,对其应用过滤器等。