Cambiar entre las cámaras frontal y posterior
Estoy usando la cámara de ejemplo google y funciona bien.
Pero, ¿cómo puedo cambiar la cámara entre la parte posterior y frontal con un botón?
- Después de la rotación de la pantalla, se cambiará el idioma de mi aplicación
- Android lo que debe ser punto de pivote para girar la imagen alrededor de su centro de la base
- Cómo manejar la rotación con Retrofit y RxJava / RxAndroid en Actividad?
- Cómo rotar vistas sobre el cambio de orientación sin volver a crear el diseño?
- Perder datos al girar la pantalla
private void setUpCameraOutputs(int width, int height) { Activity activity = getActivity(); CameraManager manager = (CameraManager) activity.getSystemService(Context.CAMERA_SERVICE); try { for (String cameraId : manager.getCameraIdList()) { CameraCharacteristics characteristics = manager.getCameraCharacteristics(cameraId); // We don't use a front facing camera in this sample. Para trocar, colocar != no lugar de ==. if (characteristics.get(CameraCharacteristics.LENS_FACING) == CameraCharacteristics.LENS_FACING_FRONT) { continue; } StreamConfigurationMap map = characteristics.get( CameraCharacteristics.SCALER_STREAM_CONFIGURATION_MAP); // For still image captures, we use the largest available size. Size largest = Collections.max( Arrays.asList(map.getOutputSizes(ImageFormat.JPEG)), new CompareSizesByArea()); mImageReader = ImageReader.newInstance(largest.getWidth(), largest.getHeight(), ImageFormat.JPEG, /*maxImages*/2); mImageReader.setOnImageAvailableListener( mOnImageAvailableListener, mBackgroundHandler); // Danger, WR! Attempting to use too large a preview size could exceed the camera // bus' bandwidth limitation, resulting in gorgeous previews but the storage of // garbage capture data. mPreviewSize = chooseOptimalSize(map.getOutputSizes(SurfaceTexture.class), width, height, largest); // We fit the aspect ratio of TextureView to the size of preview we picked. int orientation = getResources().getConfiguration().orientation; if (orientation == Configuration.ORIENTATION_LANDSCAPE) { mTextureView.setAspectRatio( mPreviewSize.getWidth(), mPreviewSize.getHeight()); } else { mTextureView.setAspectRatio( mPreviewSize.getHeight(), mPreviewSize.getWidth()); } mCameraId = cameraId; return; } } catch (CameraAccessException e) { e.printStackTrace(); } catch (NullPointerException e) { // Currently an NPE is thrown when the Camera2API is used but not supported on the // device this code runs. new ErrorDialog().show(getFragmentManager(), "dialog"); } }
“
- Cómo rotar un rectángulo dibujado en lienzo en Android?
- Phonegap / HTML5 y la pantalla de Android redimensionan el problema en rotación de paisaje a retrato
- ¿Por qué se rota una imagen capturada con la intención de la cámara en algunos dispositivos de Android?
- ¿Rotar imágenes alrededor de un círculo?
- Implementar un indicador de actividad giratoria similar a iOS en Android
- Rotar una superficie de la cámaraVer a retrato
- Girar rápidamente el teléfono 180 grados, la vista previa de la cámara gira al revés
- Fragmentos de Android que conservan datos
@Override public void onClick(View v) { switch (v.getId()) { case R.id.btn_switch_camera: closeCamera(); if (mCameraId.equals("0")) { mCameraId = "1"; } else { mCameraId = "0"; } CameraManager cameraManager = (CameraManager) Camera2Demo.this.getSystemService(Context.CAMERA_SERVICE); try { cameraManager.openCamera(mCameraId, mCameraDeviceStateCallback, mHandler); } catch (CameraAccessException e) { e.printStackTrace(); } break; } }
y la función "closeCamera ()" aquí
private void closeCamera() { mSession.close(); mSession = null; mCameraDevice.close(); mCameraDevice = null; }
- GCM, ID de registro y manejo de inicio de sesión / cierre de sesión de usuario
- Facebook SDK 4.x Android Publicar como página de Facebook