に収まるようにするために延伸、スキューされます。私はこれのためにカメラAPIを使用しています。カメラ表示/アスペクト比を維持しないフルスクリーンでプレビュー - 画像は、私はフルスクリーンでカメラのプレビューを表示するための小さなアプリケーションを開発している画面
これは活性レイアウトである:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<!-- This is the container for the camera preview screen -->
<FrameLayout android:id="@+id/camera_preview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</LinearLayout>
デバイスがポートレートである場合、ディスプレイが垂直デバイスの画面の高さを一致させるためにスケーリングされる - アスペクト比がより1と同じではないのでネイティブカメラ。
最初のイメージは、ネイティブのカメラ装置で構成されています。これらは私が言っているものをよりよく説明して2つの画像です。 2番目の画像は私のアプリで作られ、カメラはフルスクリーンで表示されます。画像は歪んで画面に収まるように引き伸ばされています。
私は関係なく、getSupportedPreviewSizes()
mehodにより歪みなしに、特定のプレビューサイズの、フルスクリーンであることをカメラのプレビューを必要としています。 これを行う方法はありますか?カメラプレビューがフルスクリーンで表示されているときに適切な縦横比を維持する方法はありますか?私はこれをOSが自動的に行うことを期待していました。アスペクト比を維持しながら要求された解像度に合わせてイメージを切り取っていましたが、これは起こりません。
私は、この質問に続くの表示よりも大きくしようとしましたが、キャプチャしたスナップショット(6フレーム/秒)と私の場合は大丈夫ではありません。 (フレームにすべてが表示されていなくても、フレームにはすべてのカメラプレビューが含まれています)。
私はここに掲載:https://www.dropbox.com/s/3d52xt8kazynsae/CameraFullScreen.7z?v=0mcn私が作ったプロジェクト全体を。
任意のアイデア/ソリューションは、私にとって重要ではありません。どうもありがとう。
==============================================原因ss1271の答えに==========================
更新:
私は、解像度を少し分析しますあなたはのSamsung Galaxy Ace IIのために上に書いた。
I.画面解像度:480X800 - アスペクト比3:5 = 0,6
II。 getSupportedPreviewSizes
- 私はこれらの値が裏カメラからのものであると確信しています。以下にこれらの解像度のための側面の比率である:
2560x1920 - 0,75
2560x1536 - 0,60
2048x1536 - 0,75
2048x1232 - 0,60
960x720 - 0,75
640x480 - 0,75
だから、あなたの方法は、2560x1536または2048x1232に対応Size
が返される - これらの画面解像度と同じアスペクト比を有し、これらの値を使用してはいないであろう画像を歪ませる。 私にとっての問題は、私は6フレーム/秒と低い解像度で保存するこれらのニーズを取り込むので、私はとても大きな解像度を使用することができないということです。
IはサムスンS2デバイスからいくつかの結果の下に存在します:
I.画面解像度:480×800 - アスペクト比3:5 = 0,6
II。バックカメラ
a)。 getSupportedPreviewSizes
:
800/480 - 480/800 = 0,60
800/450 - 450/800 = 0,56
720/480 - 0,66
640/480 - 0,75
352/288 - 0,81
320/240 - 0,75
176/144 - 0,81
b)。ネイティブカメラの解像度:
3264/2448 - 0,75 - not full screen
3264/1968 - 0,60 - FULL SCREEN (since has the same aspect ratio as device screen)
2048/1536 - 0,75 - not full screen
2048/1232 - 0,60 - FULL SCREEN (same aspect ratio as device screen)
800/480 - 0,60 - FULL SCREEN (same aspect ratio as device screen)
640/480 - 0, 75 - not full screen
III。フロントカメラ
a)。 getSupportedPreviewSizes
:
640/480 - 0,75
352/288 - 0,81
320/240 - 0,75
176/144 - 0,81
b)。ネイティブカメラがフルスクリーンではなく、解像度を選択できません - このオプションは無効です。
S2カメラの場合、getSupportedPreviewSizes()
メソッドがネイティブカメラと同じ解像度を返さないのはなぜですか、またはネイティブカメラで表示される解像度は画像サイズですか?私はgetSupportedPreviewSizes()
メソッドで与えられた3264/1968,2048/1232のようなオプションがないのはなぜだろうか? :一言で言えば
正しいアスペクト比を維持するために実際にカメラのプレビューを切り取るのですか – Paul
私は質問するかもしれません:カスタマイズされたカメラが必要ですか、単にカメラのビューファインダー(プレビュー)を表示したいですか? – dumbfingers
私はオーバレイボタン付きのカスタマイズされたカメラを持っています。 – Paul