私はチュートリアルに基づいてカメラアプリを作成しました。プレビュークラスはapi-Demos "CameraPreview"から使用します。 here(プレビューは常に90度回転しています)の変更を追加しました。これはプレビューサイズを設定する方法です:アンドロイドのカメラのプレビューが間違ったアスペクト比
public void surfaceChanged(SurfaceHolder holder, int format, int w, int h) {
// Now that the size is known, set up the camera parameters and begin
// the preview.
Camera.Parameters parameters = mCamera.getParameters();
Display display = ((WindowManager) getContext().getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay();
if (display.getRotation() == Surface.ROTATION_0) {
parameters.setPreviewSize(mPreviewSize.height, mPreviewSize.width);
mCamera.setDisplayOrientation(90);
}
if (display.getRotation() == Surface.ROTATION_90) {
parameters.setPreviewSize(mPreviewSize.width, mPreviewSize.height);
}
if (display.getRotation() == Surface.ROTATION_180) {
parameters.setPreviewSize(mPreviewSize.height, mPreviewSize.width);
}
if (display.getRotation() == Surface.ROTATION_270) {
parameters.setPreviewSize(mPreviewSize.width, mPreviewSize.height);
mCamera.setDisplayOrientation(180);
}
parameters.setPreviewSize(mPreviewSize.width, mPreviewSize.height);
requestLayout();
mCamera.setParameters(parameters);
mCamera.startPreview();
}
プレビューは正しくないアスペクト比で表示されます。それは正しいアスペクト比を得るために、どのようので、私は?:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<Button
android:id="@+id/button_capture"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:text="@string/capture" />
<FrameLayout
android:id="@+id/camera_preview"
android:layout_width="100dp"
android:layout_height="match_parent"/>
を使用したレイアウトのため、コードの上またはおそらくのですか?前もって感謝します。
P.S.私は答えをから読んだ:Android camera preview look strange しかし、これは私のために働いていない。
多分あなたはこれを閉じることができ問題 ? – Poutrathor
なぜですか?何が変わったの? – dermoritz
最初に信じる必要はありません.2番目の解決策を試す時間がありません。質問を投稿してから1年後に投稿してください。私は他の答えを試してすぐに私はフィードバックを提供します。それまではすべて正常です... – dermoritz