Ich habe eine Kamera-App basierend auf Tutorial erstellt. Die von mir verwendete Vorschauklasse stammt von api-Demos "CameraPreview". Ich habe eine Änderung von here hinzugefügt (Vorschau wurde immer um 90 ° gedreht). So stelle ich die Vorschaugröße ein:android kamera Vorschau falsches Seitenverhältnis
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();
}
Aber die Vorschau wird mit falschem Seitenverhältnis angezeigt. Ist es, weil der Code oben oder wahrscheinlich wegen des Layouts i ?: verwenden
<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"/>
So wie das richtige Seitenverhältnis zu bekommen? Danke im Voraus.
P.S. Ich lese die Antwort von: Android camera preview look strange Aber das funktioniert nicht für mich.
vielleicht haben Sie diese schließen könnte Problem ? – Poutrathor
warum? was hat sich geändert? – dermoritz
Zuerst müssen Sie nicht glauben, 2. Ich habe keine Zeit, die anderen Lösungen zu versuchen (ein Jahr nach dem Posten der Frage). Sobald ich die anderen Antworten versucht habe, werde ich Feedback geben. Bis dahin ist alles in Ordnung ... – dermoritz