在相机视图顶部使用多个 setContentView 自定义 Android 应用程序 UI?

Customizing Android app UI with more than one setContentView on top of camera view?

我是初学者 Android 开发者,正在开发原型应用程序。我在我的应用程序中使用专有的条形码扫描仪,我想在我的条形码扫描仪 运行 时在屏幕底部覆盖一个小菜单。理想情况下,此菜单的大小约为屏幕的 1/5,并包含一些按钮。我考虑过使用片段来实现此目的 UI,但我很难将扫描仪的 SDK 教程转换为使用片段。

现在,我的 activity 生成全屏摄像头视图,条形码选择器覆盖在中间,代码如下:

getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
        WindowManager.LayoutParams.FLAG_FULLSCREEN);
requestWindowFeature(Window.FEATURE_NO_TITLE);


ScanditSDKAutoAdjustingBarcodePicker picker = new
ScanditSDKAutoAdjustingBarcodePicker(
    this, sScanditSdkAppKey,ScanditSDKAutoAdjustingBarcodePicker.CAMERA_FACING_BACK);

setContentView(picker);
mBarcodePicker = picker;

我如何使用此设置覆盖我可以在 XML 文件中描述的菜单?通过另一个 setContentView() 调用 XML 布局覆盖整个屏幕,即使我将其背景设置为透明(或空)也是如此。

如果这个问题措辞不当,请提前致歉。

我查看了此 ScanditSDKAutoAdjustingBarcodePicker 的文档并找到了下一个 link: http://docs.scandit.com/stable/android/android-scanview-options.html

由于 BarcodePicker 是一个普通的 RelativeLayout,您可以像任何其他视图一样将其添加到您自己的布局中:

// Set app key. This will only have to be done once
ScanditLicense.setAppKey("yourAppKey");
// Create the scan view. Note that you will have to configure the settings in your app 
// since the default settings have all symbologies disabled and you won't be able to 
// scan anything.
BarcodePicker barcodePicker = new BarcodePicker(context, ScanSettings.create());
// Add the scan view to the root view.
rootView.addView(barcodePicker);

因此您可以 "ordinary" activity 布局,在 XML 中定义。您可以使用相对布局。在那里,您可以放置​​用于选择器和菜单的容器 (FrameLayout),与 RelativeLayout 的底部对齐。您可以通过 id 找到容器,并使用 addView() 将选择器放入该容器。