1

ポートレートモードでカメラ プレビュー サーフェスを表示するアクション バーをサポートするアクティビティを実装しようとしています。(zxing コードから) 最適なプレビュー サイズを計算していますが、そのコードはアクション バーのサイズ (高さ) を考慮しておらず、引き伸ばされた画像プレビューを返します。以前に同様の問題に遭遇した人はいますか?アクションバーの高さを考慮してカメラのプレビューを開く方法に関するチュートリアルはありますか?

編集: API レベル >= 8 をターゲットにしています。

  1. スタイルを追加しました:

    真 @null 真

Android:windowActionModeOverlay の互換性のある名前が見つかりませんでした。おそらくサポートされていませんか? それを「オーバーライド」しないことの欠点は何ですか?

  1. 追加する必要がありました:

    android:paddingTop="?attr/actionBarSize"

このようにして、FrameLayout に、AB とレイアウトの間に垂直方向の正しいスペースを確保しました。私はほとんどそこにいますが、通知バーが消えています(私はABしか持っていません)、全画面タグが原因だと思います. 私はすでに現在の結果に満足していますが、提案があれば大歓迎です。=)

4

1 に答える 1

1

SurfaceView画面のフルサイズのままにしたい。カメラのプレビュー解像度は画面の縦横比とほぼ一致するため、一致しない場合、デバイスは画像をビューに合わせるために画像を 1 次元で少し押しつぶす必要があります。

ActionBarこれは、 がmain を置き換えるのではなく、その上に置くことを意味しますSurfaceView。こちらも透明にします。実際の効果は次のとおりです ( https://play.google.com/store/apps/details?id=com.srowen.bs.android ):

ここに画像の説明を入力

これのほとんどはActionBar、テーマで をスタイリングすることによって行われます。この目的のために、デフォルトのホロテーマを変更するために私がしたことは次のとおりです。

<style name="CaptureTheme" parent="android:Theme.Holo">
  <item name="android:windowFullscreen">true</item>
  <item name="android:windowContentOverlay">@null</item>
  <item name="android:windowActionBarOverlay">true</item>
  <item name="android:windowActionModeOverlay">true</item>
</style>
于 2013-11-09T14:20:41.933 に答える