私の使用例は、横向きのカメラ プレビュー用のオーバーレイ コントローラー アクティビティを作成することです。透明なテーマを作成するためのいくつかのチュートリアルの指示に従いました。
したがって、私の 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
たが、このテーマは呼び出し元のアクティビティ (ランドスケープ) から向きを継承しており、それは私が望むものではありません。
編集:
カメラのプレビューを保持しているアプリケーションは、縦向きではプレビューが正しく表示されないため、横向きに設定されています。(古い Google バグ レポートを参照)
私がやりたかったのは、カメラ サーフェス ホルダーの前にユーザー インタラクション インターフェイス用の独立したアクティビティを配置することでした (このアクティビティは「ポートレート」に設定するか、「センサー」に設定することをお勧めします)。