8

私の使用例は、横向きのカメラ プレビュー用のオーバーレイ コントローラー アクティビティを作成することです。透明なテーマを作成するためのいくつかのチュートリアルの指示に従いました。

したがって、私の 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 バグ レポートを参照)

私がやりたかったのは、カメラ サーフェス ホルダーの前にユーザー インタラクション インターフェイス用の独立したアクティビティを配置することでした (このアクティビティは「ポートレート」に設定するか、「センサー」に設定することをお勧めします)。

4

6 に答える 6

2

このブログ投稿@android:style/Theme.Translucentに従って、カスタムの代わりにビルトインを試してください。私はこれを自分でやろうとしたことがないので、そこに書かれているテクニックが機能するかどうかはわかりません.

于 2010-04-22T01:54:44.483 に答える
1

削除してすべて完了

@Override
public void onAttachedToWindow()  {}
于 2012-01-20T21:04:35.943 に答える
1

<item name="android:windowIsTranslucent">true</item>上記のスタイルの説明のもう 1 つの重要な子要素が欠けていることがわかりました。

問題:

その子要素はまた、アクティビティの方向を呼び出し側と同期させます。( と同じ効果@android:style/Theme.Translucent)

于 2010-04-22T10:49:30.923 に答える
1

私はあなたが説明したのと同じ問題(半透明の背景と画面の向きに関して)に遭遇しましたが、最終的にはこれがまさにそれがどのように機能するかという事実と和解しました. 実際、このように機能することは実際には理にかなっています。縦向きと横向きのビューの混在をサポートする画面ベースのシステムは考えられないのに、なぜ Android を使用する必要があるのでしょうか?

一般的なルールは、マニフェスト ファイルの属性に関係なく、すべての可視アクティビティが同じ向きでなければならないということだと思います。すべてが に設定されている場合"sensor"、それらはすべて変更されます。ポートレートまたはランドスケープに固定されている場合、他のものも従う必要があります (最後に設定した人が「勝ち」ます)。

これは開発者にとって非常に明白だったので、それを文書化することは思いつかなかったと思います:)

于 2010-06-06T05:37:43.180 に答える