我的用例是为风景相机预览编写覆盖控制器活动。我按照几个教程中的说明编写透明主题。
所以我的 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>
活动片段:
<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>
当我从我的根活动开始这个活动时,布局被正确绘制,但背景保持黑色。我尝试@android:style/Theme.Translucent
改用,但是这个主题继承了调用活动(风景)的方向,这不是我想要的。
编辑:
保存相机预览的应用程序设置为横向视图,因为它不能正确地纵向显示预览。(见旧谷歌错误报告)
我想做的是在相机表面支架前面放置一个用户交互界面的独立活动(这个活动应该设置为“人像”,甚至更好地设置为“传感器”)