Cómo devolver un mapa de bits con onPictureTaken en Android?

Estoy construyendo una API para Android, donde los desarrolladores pueden usar mi clase para tomar una foto. Pero, ¿cómo puedo devolver un mapa de bits utilizando onPictureTaken. Mira mi código, por favor:

Este es un botón de mainActivity:

button.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // onPictureTaken does not return nothing // so, how can I get a bitmap from takePicture? Bitmap mBitmap = CameraUtils.takePicture(); } }); 

Y aquí está mi clase CameraUtils:

 public class CameraUtils implements Camera.PictureCallback { private Camera mCamera = null; private SurfaceTexture surfaceTexture = new SurfaceTexture(0); public Bitmap takePicture() { try { mCamera = Camera.open(1); Camera.Parameters params = mCamera.getParameters(); List<Camera.Size> sizes = params.getSupportedPictureSizes(); params.setPictureFormat(ImageFormat.JPEG); params.setPictureSize(sizes.get(0).width, sizes.get(0).height); mCamera.setParameters(params); mCamera.setPreviewTexture(surfaceTexture); mCamera.startPreview(); Log.i("MyCamera", "before takePicture"); new Handler().postDelayed(new Runnable() { @Override public void run() { mCamera.takePicture(null, null, CameraUtils.this); } }, 1000); //how to return a bitmap from here?? //how to wait for onPictureTaken?? return ????? } catch (Exception e) { e.printStackTrace(); } } @Override public void onPictureTaken(byte[] data, Camera camera) { Bitmap mBitmap = BitmapFactory .decodeByteArray(data, 0, data.length); // // how to return something here?? // // // What logic I have to do? // // // // return mBitmap; // } } 

¿Qué tengo que hacer para obtener un mapa de bits utilizando el método de mi clase?

Gracias.

No lo haces. Lo que usted hace en cambio es actualizar la interfaz de usuario de cualquier manera que desee en onPictureTaken. No devuelves nada de ella.

  • Android Camera onPreviewFrame frame rate no es coherente
  • ¿Cómo utilizar la cámara web en el emulador de Android para capturar una imagen en vivo?
  • ¿Puedo obligar a mi aplicación a iniciar la cámara predeterminada en lugar de ofrecer la lista de "Acción completa usando"?
  • ¿Cómo utilizar la cámara en Android para capturar imágenes y videos?
  • Android obtener ruta de la foto sin tomar foto
  • Cámara Android - A veces, cuando tomo fotos, la aplicación se congela y la cámara no es utilizable
  • Grabación de superposición de texto / imagen en Android
  • ¿Quién tiene un material de cómo trabajar con la cámara de detección de la cara 2 API?
  • Android: aplica efectos de OpenGL a la cámara
  • Matriz int a la textura opengl en android
  • Uso de la cámara del teléfono a través de Intent - ¿la actividad nunca vuelve?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.