我的用例是为横向相机预览编写覆盖控制器活动.我按照几个教程中的说明编写了一个透明的主题.
所以我的res/values/style.xml看起来像这样:
<resources>
<style name="Theme" parent="android:Theme" />
<style name="Theme.Transparent">
<item name="android:windowBackground">@drawable/transparent_background</item>
</style>
<drawable name="transparent_background">#00000000</drawable>
</resources>
Run Code Online (Sandbox Code Playgroud)
活动代码段:
<activity android:name=".CameraPreview"
android:label="Camera"
android:screenOrientation="landscape"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".Controlls"
android:label="Controlls"
android:screenOrientation="portrait"
android:theme="@android:style/Theme.Translucent">
</activity>
Run Code Online (Sandbox Code Playgroud)
当我从根活动开始此活动时,布局被正确绘制,但背景保持黑色.我尝试使用@android:style/Theme.Translucent,但是这个主题继承了调用活动(横向)的方向,这不是我想要的.
编辑:
保持相机预览的应用程序设置为横向视图,因为它不能以纵向正确显示预览.(参见旧的谷歌bug报告)
我想要做的是在相机表面支架前面为用户交互界面设置一个独立的活动(此活动应设置为"纵向",或者更好地设置为"传感器")