¿Cómo puedo rotar un mapa de bits en Android?
Sé que hay hilos en esta pregunta ya, pero las soluciones parecen utilizar métodos de la clase Matrix que no parecen funcionar más. Incluso después de las importaciones los métodos no pueden ser resueltos. Estoy básicamente tratando de rotar un mapa de bits de 90 grados, porque sale de lado cuando tomo una foto verticalmente. Aquí está mi código para la actividad:
@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.camera); this.imageView = (ImageView)this.findViewById(R.id.imageView1); Button photoButton = (Button) this.findViewById(R.id.button1); photoButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent("android.media.action.IMAGE_CAPTURE"); File file = new File(Environment.getExternalStorageDirectory()+File.separator + "image.jpg"); intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(file)); startActivityForResult(intent, CAPTURE_IMAGE_FULLSIZE_ACTIVITY_REQUEST_CODE); } }); } protected void onActivityResult(int requestCode, int resultCode, Intent data) { //Check that request code matches ours: if (requestCode == CAPTURE_IMAGE_FULLSIZE_ACTIVITY_REQUEST_CODE) { //Get our saved file into a bitmap object: File file = new File(Environment.getExternalStorageDirectory()+File.separator + "image.jpg"); Bitmap bitmap = decodeSampledBitmapFromFile(file.getAbsolutePath(), 1000, 700); Intent intent = new Intent(this, EditActivity.class); ByteArrayOutputStream bs = new ByteArrayOutputStream(); bitmap.compress(Bitmap.CompressFormat.PNG, 50, bs); intent.putExtra("byteArray", bs.toByteArray()); startActivity(intent); } }
- Android: Cambiar el tamaño de un archivo de mapa de bits grande a un archivo de salida escalado
- Retraso en la demostración de uso de la imagen mapa de bits en android
- Biblioteca de edición de imágenes para Android
- Cómo manejar try catch exception android
- OutOfMemory Error al intentar girar una imagen dentro de una vista de imagen
- Bitmap.Config.HARDWARE vs Bitmap.Config.RGB_565
- Convertir mapa de bits en byteArray android
- Cargando una imagen de anchura y altura completa
- El tamaño del mapa de bits supera el error de presupuesto de Vm android
- Acceso a datos sin procesar en ARGB_8888 Android Bitmap
- ¿Hay lejos para conseguir uri del mapa de bits con hacia fuera excepto él a sdcard?
- ¿Hay alguna forma de obtener el Rect en el que Bitmap se dibuja en Android?
- El mapa de bits rotativo hace que outOfMemoryException
prueba esto:
public static Bitmap RotateBitmap(Bitmap source, float angle) { Matrix matrix = new Matrix(); matrix.postRotate(angle); return Bitmap.createBitmap(source, 0, 0, source.getWidth(), source.getHeight(), matrix, true); }
Aquí por favor pase su mapa de bits o en ángulo lo que desea mostrar su mapa de bits como 90 180 etc .. cambiará la pantalla de mapa de bits utilizando el método postRotate () de la clase Matrix y de nuevo crear mapa de bits y revertir
Usted puede agregar un TextView a su disposición y fijar el mapa de bits a él
ImageView yourView = (ImageView)findViewById(imageviewid); Bitmap bitmap = decodeSampledBitmapFromFile(file.getAbsolutePath(), 1000, 700); yourView.setImageBitmap(bitmap);
Probablemente puede utilizar RotateAnimation
en la vista (ImageView configurada en Bitmap) que desea Rotar y no olvide establecer la animación en fillAfter=true
y duration=0
.
<?xml version="1.0" encoding="utf-8"?> <rotate xmlns:android="http://schemas.android.com/apk/res/android" android:fromDegrees="90" android:toDegrees="180" android:pivotX="50%" android:pivotY="50%" android:duration="0" android:startOffset="0" />
Ahora todo lo que necesitas es inflar la animación a tu vista
Animation rotation = AnimationUtils.loadAnimation(this, R.anim.rotation); yourView.startAnimation(rotation);
O simplemente puede hacer esto yourView.setRotation(angle)
con API >= 11
.
- Android gradle construir con la biblioteca, no se puede encontrar el símbolo
- Generar miniatura de PDF en Android