Android Flip ImageView по вертикали

Я пытаюсь перевернуть и ImageView вертикально, но это просто не сработает.

Ява:

 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> 

ImageView не переворачивается вообще.

Кто-нибудь знает, почему?

Solutions Collecting From Web of "Android Flip ImageView по вертикали"

Проверьте этот ответ . Вы можете легко выполнять флип, используя параметр xml

 android:scaleY="-1" 

Обратите внимание, что это не работает в предварительном просмотре, только при запуске приложения.
Начиная с Android Studio 2, это также работает в режиме предварительного просмотра.

В качестве альтернативы вы можете вызвать setScaleY(-1f) в вашем ImageView в коде.

Это может произойти, если битмап, который вы передаете методу flipImageVertically, является обратным, и вы всегда передаете одно и то же растровое изображение каждый раз. Публикация более подробной информации может помочь сузить, xml и код.

Просто чтобы сообщить, что я разработал новую библиотеку FlipView, которая включает и расширяет эту конкретную анимацию (флип). Я имею в виду полностью настраиваемую библиотеку, в которой вы сможете менять любые виды и макеты с любой анимацией и фигурами, которые вы хотите, включая отображение изображений Gmail.

В вашем конкретном случае пример, предоставленный библиотекой, также имеет вертикальный флип.

Пожалуйста, смотрите.

Получить доступный из ресурсов

 Bitmap icon = BitmapFactory.decodeResource(mContext.getResources(), R.drawable.index); 

а потом

 public static Bitmap flip(Bitmap src, Direction type) { Matrix matrix = new Matrix(); if(type == Direction.VERTICAL) { matrix.preScale(1.0f, -1.0f); } else if(type == Direction.HORIZONTAL) { matrix.preScale(-1.0f, 1.0f); } else { return src; } return Bitmap.createBitmap(src, 0, 0, src.getWidth(), src.getHeight(), matrix, true); } 

Установить ImageView.setImageBitmap()