Cómo recortar y girar la imagen mediante programación en android?
Quiero girar la imagen en 90 grados y también quiero recortar la imagen sacada de la galería del teléfono. ¿Cómo puedo realizar esta operación de forma programática en android?
- Cómo puedo crear un RecyclerView con una imagen de tamaño fijo que envuelva el contenido y la imagen centrada en el cultivo
- Programaticamente cambiar drawableLeft de botón
- Cómo cambiar el tamaño de una imagen que elegí de la galería en android?
- Android - Dibujo de una imagen de los activos, algo raro está sucediendo
- Android - Definir el fondo de la aplicación
- Transparencia de la imagen de Android
- Diferencia entre los formatos de imagen RGB888 y ARGB8888
- Obtener imágenes redimensionadas dentro de los botones de Android
- ¿Cuál es la diferencia entre ImageView.setBackgroundResource y ImageView.setImageResource?
- Android: Rotación de la imagen alrededor del centro
- Programar una captura de pantalla del servicio
- Cambio de imagen en ImageView
- Android: relleno de imagen
Para realizar la rotación de la imagen puede tener el código siguiente:
Bitmap bMap = BitmapFactory.decodeResource(getResources(),R.drawable.test); Matrix mat = new Matrix(); mat.postRotate(90); Bitmap bMapRotate = Bitmap.createBitmap(bMap, 0, 0, bMap.getWidth(), bMap.getHeight(), mat, true); BitmapDrawable bmd = new BitmapDrawable(bMapRotate); image.setImageBitmap(bMapRotate); image.setImageDrawable(bmd);
Y para el recorte de imágenes tomadas desde la galería utilice el siguiente fragmento de código:
Intent viewMediaIntent = new Intent(); viewMediaIntent.setAction(android.content.Intent.ACTION_VIEW); File file = new File("/image/*"); viewMediaIntent.setDataAndType(Uri.fromFile(file), "image/*"); viewMediaIntent.putExtra("crop","true"); viewMediaIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_SINGLE_TOP); startActivityForResult(viewMediaIntent,1);
Esperanza, esto será provechoso para usted.
Pruebe el siguiente código para recortar la imagen seleccionada de la gallary.
private static final String TEMP_PHOTO_FILE = "temporary_holder.jpg"; Intent photoPickerIntent = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI); photoPickerIntent.setType("image/*"); photoPickerIntent.putExtra("crop", "true"); photoPickerIntent.putExtra(MediaStore.EXTRA_OUTPUT, getTempUri()); photoPickerIntent.putExtra("outputFormat", Bitmap.CompressFormat.JPEG.toString()); startActivityForResult(photoPickerIntent, REQ_CODE_PICK_IMAGE); private Uri getTempUri() { return Uri.fromFile(getTempFile()); } private File getTempFile() { if (isSDCARDMounted()) { File f = new File(Environment.getExternalStorageDirectory(),TEMP_PHOTO_FILE); try { f.createNewFile(); } catch (IOException e) { } return f; } else { return null; } } private boolean isSDCARDMounted(){ String status = Environment.getExternalStorageState(); if (status.equals(Environment.MEDIA_MOUNTED)) return true; return false; } protected void onActivityResult(int requestCode, int resultCode, Intent imageReturnedIntent) { super.onActivityResult(requestCode, resultCode, imageReturnedIntent); switch (requestCode) { case REQ_CODE_PICK_IMAGE: if (resultCode == RESULT_OK) { if (imageReturnedIntent!=null){ File tempFile = getTempFile(); String filePath= Environment.getExternalStorageDirectory() + "/temporary_holder.jpg"; System.out.println("path "+filePath); Bitmap selectedImage = BitmapFactory.decodeFile(filePath); _image = (ImageView) findViewById(R.id.image); _image.setImageBitmap(selectedImage ); } } }
Y también echar un vistazo a este Tutorial1 , tutorial2
prueba esto:
Android: recortar una imagen después de tomarla con cámara con una relación de aspecto fija
Que te ayude.