Estoy trabajando con imágenes de gran tamaño y cuando intento girarlas (applying matrix on the bitmap)
ocurren muchos segundos. He visto que la galería del sistema Android puede realizar esta tarea de una manera muy rápida. ¿Como es posible?La forma más rápida de rotar un mapa de bits de gran tamaño
Pensé realizar la rotación en un asyncTask, aplicando solo la rotación de ImageView (que no lleva mucho tiempo) en el hilo principal, pero si la aplicación se elimina antes de que asyncTask llegue al final, la aplicación caerá en un estado inconsistente
Este es mi código de la rotación de mapa de bits, que toma la ejecución de mucho tiempo para grandes mapas de bits:
Matrix mat = new Matrix();
mat.setRotate(90);
bMap = Bitmap.createBitmap(bMap, 0, 0, bMap.getWidth(), bMap.getHeight(), mat, true);
Esta es una buena idea para mejorar la experiencia del usuario, por supuesto. Pero el principal problema es que cuando trabajo en la imagen original al final, la tarea puede requerir mucho tiempo para completarse y tengo estas complicaciones: - si realizo la operación en el hilo principal, el usuario tiene que esperar - si realizo la operación en un asyncTask, la aplicación debe ser eliminada antes de su finalización y los cambios se perderán –
Esto podría sonar como una desviación del requisito original: puede dibujar un rectángulo en lugar de girar toda la imagen en tiempo real . al final, lo que el usuario necesita es una indicación de cuánto ha girado su imagen. Esto será más rápido y fácil de hacer en el subproceso de interfaz de usuario sin retraso. – Ronnie
Disculpe por el malentendido, mi pregunta es: "Cómo realizar la rotación de mapa de bits de manera rápida, como la galería del sistema es capaz de hacer". De todos modos, estoy muy confundido por tus consejos. Lo que necesito al final es realizar la rotación en el mapa de bits de gran tamaño, no darle al usuario una indicación sobre la rotación como usted dijo. Además, dejo solo 90, 180, 270, 360 grados de rotación, tal como lo permite la galería. Gracias por su paciencia :) –