2015-03-15 3 views
11

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

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> 

ImageView не листать вообще.

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

ответ

1

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

+0

Я добавил код XML. Я прохожу только в исходном растровом изображении. Я не изменяю его вообще перед рукой. – Subby

+0

Растровое изображение, которое вы проходите; это выход из ресурса или? попробуйте этот частный статический булевский щелчок; public static void flipImageVertically (битмап bmp, окончательный ImageView imageView) { final Matrix matrix = new Matrix(); если (перевернутый) { matrix.preScale (1.0f, -1.0f); } else { matrix.preScale (-1.0f, 1.0f); } flipped =! Flipped; imageView.setImageBitmap (Bitmap.createBitmap (bmp, 0, 0, bmp.getWidth(), bmp.getHeight(), matrix, true)); } – Catalina

+0

Он будет альтернативно переворачивать изображение вверх ногами вверх и вверх. – Catalina

51

Проверка this answer. Вы можете выполнить сальто очень легко с помощью параметра XML

android:scaleY="-1" 

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

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

+0

Это не работает для меня. Я пробовал, и он все равно не перевернется. – Subby

+1

он не работает в предварительном просмотре, вы пытались запустить его? – Lamorak

0

получить вытяжке из ресурсов

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()

1

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

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

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

 Смежные вопросы

  • Нет связанных вопросов^_^