¿Está com.android.camera.action.CROP no disponible para Android jelly bean 4.3?
Yo estaba usando com.android.camera.action.CROP para recortar después de tomar foto con la cámara.
Debajo estaba mi código que solía trabajar antes antes 4.3.
- Las líneas de color verde aparecen en la vista previa de la cámara
- Procesamiento de vídeo en Android
- SurfaceView en servicio
- Funciones de la cámara Android no funcionan en algunos teléfonos
- Objetivo de la cámara no funciona con Samsung Galaxy S3
Intent cropIntent = new Intent("com.android.camera.action.CROP"); cropIntent.setType("image/*"); cropIntent.putExtra("crop", "true"); cropIntent.putExtra("aspectX", 1); cropIntent.putExtra("aspectY", 1); cropIntent.putExtra("outputX", Conf.getInt("IMAGE_WIDTH")); cropIntent.putExtra("outputY", Conf.getInt("IMAGE_HEIGHT")); cropIntent.putExtras(extras); startActivityForResult(cropIntent, CROP_REQUEST_CODE);
Pero ahora que la acción de recorte de Android te lleva a la galería (porque la galería es la predeterminada con el recorte), este método de recorte falla (la foto no se guarda en la galería).
¿Alguien sabe una manera de salir de este problema. Donde puedo usar la cosecha en la foto tomada de la cámara
- Cámara abierta de Android del botón
- MEDIA_TYPE_IMAGE no reconocido
- Datos Exif TAG_ORIENTATION siempre 0
- Imagen distorsionada con la cámara y getOptimalPreviewSize
- Establecer parámetros de diseño dinámicamente
- Error de la cámara 100
- Cómo deshacerse de la cámara se congela (SurfaceView)?
- Android: Cancelar la cancelación del botón de la cámara
Copiando la respuesta de una pregunta similar preguntada anteriormente.
¿Ha considerado usar una biblioteca como esta:
GitHubLink
Encuentro que el com.android.camera.action.CROP a veces se comporta de manera diferente de teléfono a teléfono y no siempre está disponible, por lo que podría causar algunos problemas para usted de todos modos si usted está buscando para liberarlo.
ACTUALIZAR:
He probado la biblioteca anterior con Android 4.3 y funciona sin ningún problema. Sólo tiene que agregar la biblioteca a su proyecto.
A continuación, puede escribir su método de una manera muy similar:
private void performCrop(Uri picUri) { //you have to convert picUri to string and remove the "file://" to work as a path for this library String path = picUri.toString().replaceAll("file://", ""); try { int aspectX = 750; int aspectY = 1011; Intent intent = new Intent(this, CropImage.class); //send the path to CropImage intent to get the photo you have just taken or selected from gallery intent.putExtra(CropImage.IMAGE_PATH, path); intent.putExtra(CropImage.SCALE, true); intent.putExtra("aspectX", aspectX); intent.putExtra("aspectY", aspectY); intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(new File(mCurrentPhotoPath))); startActivityForResult(intent, CROP); } catch (ActivityNotFoundException anfe) { String errorMessage = "Your device doesn't support the crop action!"; Toast toast = Toast.makeText(this, errorMessage, Toast.LENGTH_SHORT); toast.show(); }
De acuerdo con la publicación de @commonsware
Esta intención se basa en la AOSP camera app
que puede o no estar disponible en el dispositivo de destino, para algunos dispositivos de 4.3 puede funcionar mientras que para algunos no.
Así que mejor enfoque será el uso de cualquier biblioteca de código abierto que se encuentra en Android arsenal
(Asegúrese de que también no se basan en AOSP
).
He intentado un par de cultivadores. Especialmente los que se refiere por commonsware no se mantienen muy bien. Por ejemplo, las imágenes tomadas con datos de rotación en la meta información no están bien rotadas. He encontrado este: https://android-arsenal.com/details/1/3487 y su gran. Nota: asegúrese de agregar la actividad con un tema de barra de acción!
- Aplicación de Android: cómo leer el tamaño de fuente en Configuración?
- No se pudo obtener el evento Touch para TYPE_SYSTEM_OVERLAY