Abrir cámara dentro del fragmento

¿Es posible utilizar la cámara en un fragmento como la vista, para que no se abra otra aplicación y se alejan de mi? Algo así como SurfaceView con cámara?

Sí, compruebe este mensaje: https://www.airpair.com/android/android-camera-surface-view-fragment

Básicamente sobreescribir el SurfaceView e integrar la devolución de llamada de la imagen de la cámara.

 /* Surface on which the camera projects it's capture results. */ class CameraPreview extends SurfaceView implements SurfaceHolder.Callback { SurfaceHolder mHolder; Camera mCamera; public CameraPreview(Context context, Camera camera) { super(context); mCamera = camera; // Install a SurfaceHolder.Callback so we get notified when the // underlying surface is created and destroyed. mHolder = getHolder(); mHolder.addCallback(this); // deprecated setting, but required on Android versions prior to 3.0 mHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS); } public void surfaceCreated(SurfaceHolder holder) { // The Surface has been created, now tell the camera where to draw the preview. try { mCamera.setPreviewDisplay(holder); mCamera.startPreview(); } catch (IOException e) { e.printStackTrace(); } } public void surfaceDestroyed(SurfaceHolder holder) { // empty. Take care of releasing the Camera preview in your activity. } public void surfaceChanged(SurfaceHolder holder, int format, int w, int h) { // If your preview can change or rotate, take care of those events here. // Make sure to stop the preview before resizing or reformatting it. if (mHolder.getSurface() == null){ // preview surface does not exist return; } // stop preview before making changes try { mCamera.stopPreview(); } catch (Exception e){ // ignore: tried to stop a non-existent preview } // set preview size and make any resize, rotate or // reformatting changes here // start preview with new settings try { mCamera.setPreviewDisplay(mHolder); mCamera.startPreview(); } catch (Exception e){ e.printStackTrace(); } } } 

Con una cámara de devolución de llamada de imagen como:

 private Camera.PictureCallback mPicture = new Camera.PictureCallback() { @Override public void onPictureTaken(byte[] data, Camera camera) { File pictureFile = getOutputMediaFile(); if (pictureFile == null){ Toast.makeText(getActivity(), "Image retrieval failed.", Toast.LENGTH_SHORT) .show(); return; } try { FileOutputStream fos = new FileOutputStream(pictureFile); fos.write(data); fos.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }; 
  • nuevo android Camera2 Api en el nexo 7
  • Android ACTION_IMAGE_CAPTURE con EXTRA_OUTPUT en la memoria interna
  • Hermosa forma de superar el error con ACTION_IMAGE_CAPTURE
  • en android 6.0.1, recuperar la foto de la cámara no funciona
  • Establecer parámetros de diseño dinámicamente
  • Android Camera setDisplayOrientation no funciona
  • Android Exception: java.io.IOException: open failed: EACCES (permiso denegado)
  • Configuración de Parameters.FLASH_MODE_TORCH no funciona en Droid X 2.3
  • Android: la imagen tomada por la cámara personalizada es demasiado oscura
  • Convertir el marco de vista previa en un mapa de bits
  • Cómo obtener la distancia a un objeto y el tamaño del objeto utilizando la cámara (dispositivo Android)?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.