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:
- La aplicación de la API de la cámara Android se bloquea en onResume
- Error de la cámara 100
- Cómo aumentar la resolución de la cámara cuando se utiliza IMAGE_CAPTURE intención
- Android: obtener tamaños de vídeo compatibles
- Android: muestra líneas de cuadrícula en la cámara
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.
- ¿Cómo pasar la vista previa de la cámara a la superficie creada por MediaCodec.createInputSurface ()?
- Error de la cámara Android 5001
- PictureCallback.onPictureTaken nunca llamado
- Inicie la aplicación de cámara nativa con la opción de capturar vídeo o imagen
- Cámara Android: ¿Hilos? Que debe hacer lo que
- Se ha producido un error al establecer la orientación
- Cómo comprobar la disponibilidad de telefonía y cámara para la versión de SDK <5
- Acceso nativo a la cámara Android: startPreview () vs startRecording ()
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.
- Cordova Plugin error de la cámara en el paquete
- Problema de Android con la implementación de flings en NestedScrollView