Deshabilitar el cambio de orientación

Re-Iniciación Cámara Personalizada, al hacer el cambio en los modos de vista previa , de Paisaje a Retrato o Retrato a Paisaje , mi código de clase de superficie se ve así:

PreviewSurface.java:-

public class PreviewSurface extends SurfaceView implements SurfaceHolder.Callback { public static final String LOG_TAG = "CameraPreview"; private SurfaceHolder mSurfaceHolder; private Camera mCamera; // Constructor that obtains context and camera @SuppressWarnings("deprecation") public PreviewSurface(Context context, Camera camera) { super(context); this.mCamera = camera; this.mSurfaceHolder = this.getHolder(); this.mSurfaceHolder.addCallback(this); this.mSurfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS); this.mSurfaceHolder.setFixedSize(100, 100); } @Override public void surfaceCreated(SurfaceHolder surfaceHolder) { try { Camera.Parameters parameters = mCamera.getParameters(); if (this.getResources().getConfiguration().orientation != Configuration.ORIENTATION_LANDSCAPE) { parameters.set("orientation", "portrait"); mCamera.setDisplayOrientation(90); parameters.setRotation(90); mCamera.setPreviewDisplay(surfaceHolder); mCamera.startPreview(); } else { // This is an undocumented although widely known feature parameters.set("orientation", "landscape"); // For Android 2.2 and above mCamera.setDisplayOrientation(0); // Uncomment for Android 2.0 and above parameters.setRotation(0); } mCamera.setPreviewDisplay(surfaceHolder); mCamera.startPreview(); } catch (IOException e) { // left blank for now } } @Override public void surfaceDestroyed(SurfaceHolder surfaceHolder) { mCamera.stopPreview(); mCamera.release(); } @Override public void surfaceChanged(SurfaceHolder surfaceHolder, int format, int width, int height) { try { Camera.Parameters parameters = mCamera.getParameters(); if (this.getResources().getConfiguration().orientation != Configuration.ORIENTATION_LANDSCAPE) { parameters.set("orientation", "portrait"); mCamera.setDisplayOrientation(90); parameters.setRotation(90); } else { // This is an undocumented although widely known feature parameters.set("orientation", "landscape"); // For Android 2.2 and above mCamera.setDisplayOrientation(0); // Uncomment for Android 2.0 and above parameters.setRotation(0); } mCamera.setPreviewDisplay(surfaceHolder); mCamera.startPreview(); } catch (IOException e) { // left blank for now } } } 

¿Puedo saber dónde estoy haciendo mal, lo que he perdido en mi código?

Tienes que manejar el cambio de configuración para tu aplicación.

Agrega esta línea a tu AndroidManifest.xml.

 android:configChanges="keyboardHidden|orientation|screenSize" 

Esto le dice al sistema qué cambios de configuración va a manejar usted mismo – en este caso por no hacer nada.

Espero que ayude

No está claro de su pregunta de qué se queja, pero parece que solo manipula los parámetros de la cámara, nunca llamando a mCamera.setParameters(parameters) . Esto solo puede causar confusión.

Usando parameters.set("orientation", "landscape"); En dispositivos que no admiten este parámetro puede causar RuntimeException en mCamera.setParameters(parameters) . Por lo tanto, por lo general usamos un intento por separado … coger alrededor de este ajuste.

  • Nueva visión API - Tamaño de imagen
  • ¿Cómo se toman imágenes de alta resolución usando Camera.takePicture ()?
  • Cómo podemos medir la distancia entre el objeto y la cámara del teléfono android
  • Conversión de YUV a RGB por fragment shader
  • En Android, ¿es posible cambiar la cámara (de adelante hacia atrás) y seguir grabando?
  • SurfaceCreated: java.lang.NullPointerException
  • Android Fatal señal 11 (SIGSEGV) en 0x00000040 (código = 1) Error
  • Servidor de la cámara Android muerto y error de la cámara - 100
  • RuntimeException en Camera.setParameters () en el nexo uno
  • Android-camera-server-died-y-camera-error-100
  • Cómo recortar la imagen en forma ovalada o forma facemask en android?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.