Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to flip ImageView in Android?

I am working on an application I need to flip ImageView on touch and transfer control to the second activity.

Please help me.

I tried a lot but I haven't succeed.

Thank you all in advance.

like image 572
Maulik.J Avatar asked Jul 18 '12 11:07

Maulik.J


2 Answers

Here is a nice library to flip images:

https://github.com/castorflex/FlipImageView

like image 180
Bakyt Avatar answered Sep 20 '22 15:09

Bakyt


You dont need to use any library, you can try following simple function to flip imageview either horizontally or vertically,

    final static int FLIP_VERTICAL = 1;
    final static int FLIP_HORIZONTAL = 2;
    public static Bitmap flip(Bitmap src, int type) {
            // create new matrix for transformation
            Matrix matrix = new Matrix();
            // if vertical
            if(type == FLIP_VERTICAL) {
                matrix.preScale(1.0f, -1.0f);
            }
            // if horizonal
            else if(type == FLIP_HORIZONTAL) {
                matrix.preScale(-1.0f, 1.0f);
            // unknown type
            } else {
                return null;
            }

            // return transformed image
            return Bitmap.createBitmap(src, 0, 0, src.getWidth(), src.getHeight(), matrix, true);
        }

You will have to pass bitmap associated with imageview to be flipped and flipping type. For example,

ImageView myImageView = (ImageView) findViewById(R.id.myImageView);
Bitmap bitmap = ((BitmapDrawable)myImageView.getDrawable()).getBitmap(); // get bitmap associated with your imageview
myImageView .setImageBitmap(flip(bitmap ,FLIP_HORIZONTAL));
like image 35
akshay7692 Avatar answered Sep 21 '22 15:09

akshay7692