Sólo puedo girar la imagen una vez y cuando hago clic en el botón de nuevo, la imagen se congela y no gira. Por favor me ayude.

try{
    //Bitmap bMap;

    //Get ImageView from layout xml file
    img = (ImageView) findViewById(R.id.imageView01);

    //Decode Image using Bitmap factory.
    Bitmap bMap = BitmapFactory.decodeFile(selectedImagePath);

    //Create object of new Matrix.
    Matrix matrix = new Matrix();

    //set image rotation value to 90 degrees in matrix.
    matrix.postRotate(90);

    //Create bitmap with new values.
    Bitmap bMapRotate = Bitmap.createBitmap(bMap, 0, 0, bMap.getWidth(), bMap.getHeight(), matrix, true);

    //put rotated image in ImageView.
    img.setImageBitmap(bMapRotate);

    Context context = getApplicationContext();
    CharSequence text = "Image Rotated" ;
    int duration = Toast.LENGTH_SHORT;

    Toast toast = Toast.makeText(context, text, duration);

    toast.show();

}catch (Exception e) {       
    e.printStackTrace();
    displayExceptionMessage(e.getMessage());
}
  • Aquí usted tiene que girar el ya rotar la imagen para la próxima vez, y no la imagen original, no tendrá ningún efecto en girar la imagen original de nuevo.
  • ¿tengo que obtener la imagen desde el imageView y girar de nuevo? pero, ¿cómo.. por favor puede mostrar de mí porque soy nuevo en android. Gracias
  • Eso depende de qué están tratando de lograr, obtener la imagen de imageView será una mejor opción.
  • en realidad, yo voy a importar imagen de la galería en el imageView que es realizar una rotación y recorte. Este es el paso de la pre-imagen para el procesamiento de texto que voy a usar la imagen rotar y recortar para obtener el texto.
InformationsquelleAutor chai | 2013-05-08

1 Comentario

  1. 2

    Probar este

    try {
        //Bitmap bMap;
    
        //Get ImageView from layout xml file
        img = (ImageView) findViewById(R.id.imageView01);
    
        //Decode Image using Bitmap factory.
        //Bitmap bMap = BitmapFactory.decodeFile(selectedImagePath);
         Bitmap bMap = Bitmap.createBitmap(img.getDrawingCache());
    
        //Create object of new Matrix.
        Matrix matrix = new Matrix();
    
        //set image rotation value to 90 degrees in matrix.
        matrix.postRotate(90);
        matrix.postScale(0.5f, 0.5f);
    
        int newWidth = bMap.getWidth()/2;
        int newHeight = bMap.getHeight()/2;
    
        //Create bitmap with new values.
        Bitmap bMapRotate = Bitmap.createBitmap(bMap, 0, 0, newWidth, newHeight, matrix, true);
    
        //put rotated image in ImageView.
        img.setImageBitmap(bMapRotate);
    
        Context context = getApplicationContext();
        CharSequence text = "Image Rotated" ;
        int duration = Toast.LENGTH_SHORT;
    
        Toast toast = Toast.makeText(context, text, duration);
    
        toast.show();
    
    } catch (Exception e) {       
        e.printStackTrace();
        displayExceptionMessage(e.getMessage());
    }

    Wht he hecho en ur código es que he creado un mapa de bits en el ImageView para la rotación.

    Espero que esto ayude..

    • wow.. esto funciona.. muchas GRACIAS.. me gusta mucho esta ayuda.. por Cierto, puede usted por favor, muéstrame cómo realizar cultivos de acción de la imagen cargada en el imageView? esta es una de la función de mejorar el OCR como usuario sólo seleccione el área de texto e ignorar la otra parte que no contiene ningún texto. Muchas gracias
    • u significa que deseas recortar o ajustar la imagen antes de insertarla en el ImageView?
    • recortar la imagen después de girar.
    • comprobar mi edición… matriz.postScale(0.5 f, 0.5 f); int newWidth = bMap.getWidth()/2; int newHeight = bMap.getHeight()/2;mapa de bits bMapRotate = mapa de bits.createBitmap(bMap, 0, 0, newWidth, newHeight, matriz, true); ..la imagen se recortará a newWidth y newHeight..
    • gracias por la función de recorte. pero cómo mostrar una zona de cultivos (una caja) para el usuario para recortar y ajustar el tamaño de la imagen para que la imagen se puede recortar a cualquier tamaño..
    • que sería de toda lógica..vas a tener que jugar con eventos de toque..
    • ¿tiene la solución para eso?
    • déjame ver…voy a buscar algún buen ejemplo nd let u know..

Dejar respuesta

Please enter your comment!
Please enter your name here