Android Flip ImageView Vertically

Subby picture Subby · Mar 15, 2015 · Viewed 31k times · Source

I am trying to flip and ImageView vertically but it just won't work.

Java:

public static void flipImageVertically(final Bitmap bmp, final ImageView imageView) {
    final Matrix matrix = new Matrix();

    matrix.preScale(1.0f, -1.0f);

    imageView.setImageBitmap(Bitmap.createBitmap(bmp, 0, 0, bmp.getWidth(), bmp.getHeight(), matrix, true));
}

XML:

<LinearLayout                
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_weight="1">

    <ImageView
        android:id="@+id/imageView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@color/red" />

</LinearLayout>

The ImageView isn't flipping at all.

Anyone know why?

Answer

Lamorak picture Lamorak · Mar 15, 2015

Check this answer. You can perform flip very easily using an xml parameter

android:scaleY="-1"

Note that this does not work in preview, only when you run the app.
Since Android Studio 2, this works in preview as well.

Alternatively you can call setScaleY(-1f) on your ImageView in code.