나는 튜토리얼을 기반으로 카메라 응용 프로그램을 만들었습니다. 미리보기 클래스는 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. 나는 대답을 읽었다 : Android camera preview look strange 그러나 이것은 나를 위해 일하지 않는다.
어쩌면 당신이 종료 할 수 문제? – Poutrathor
왜? 무엇이 바뀌 었습니까? – dermoritz
처음에는 믿을 필요가 없습니다. 둘째, 다른 솔루션을 시도 할 시간이 없습니다 (질문 게시 후 1 년 간 게시 됨). 다른 답변을 시도하자마자 나는 피드백을 줄 것입니다. 그때까지 모두 괜찮습니다 ... – dermoritz