Анимированный GIF для Android

1

Я пытаюсь отобразить анимированный GIF с помощью WebView. Он отлично работает на большинстве устройств, но некоторые из них не поддерживают анимацию, и отображается статический GIF.

Как определить, поддерживает ли устройство анимированные GIF файлы в WebView, поэтому я могу отобразить соответствующее сообщение, если оно не соответствует?

Теги:
webview
gif

5 ответов

1

Ненавижу сказать так, но это самый эффективный способ узнать. Откройте изображение GIF, и если он не воспроизводится... Его не поддерживают на устройстве

  • 0
    Не очень помогает в этом случае: p
1

Как вы можете видеть по этой ссылке http://code.google.com/p/android/issues/detail?id=3422. этот вопрос все еще не разрешен в течение двух лет. Но большинство устройств отлично работают в Gingerbread. Таким образом, вы можете проверить уровень ОС (начиная с уровня 9), который работает или не работает

  • 0
    Спасибо, но я ищу надежный способ проверить, поддерживает ли текущее устройство анимированные GIF-файлы. Решение, которое «работает большую часть времени» не достаточно.
1

Да, это швы общая проблема. В отчете об ошибках есть некоторые обходные пути, но это говорит о том, что это не ядро ​​Android.

Некоторые компании (например, HTC), возможно, позаботились об этом сами, но вы не можете полагаться на анимированный gif для работы.

  • 0
    Я знаю, что не могу, поэтому я спросил, как проверить, поддерживаются ли они на текущем устройстве.
  • 0
    Ну, если решения, предоставленного @Prios_KR, недостаточно, я боюсь, что нет решения.
0

В файле Android С++ external/webkit/WebCore/platform/graphics/android/ImageSourceAndroid.cpp есть функция static bool should_use_animated_gif(int width, int height), которая возвращает true, если определена ANDROID_LARGE_MEMORY_DEVICE.

Здесь, Леон Скроггинс (кажется, инженер Google) говорит, что ANDROID_LARGE_MEMORY_DEVICE определяется "для всех устройств ручного управления с помощью VFP, и все устройства без оружия."

Изменить: это подтверждается external/webkit/Android.mk:

ifeq ($(ARCH_ARM_HAVE_VFP),true)
LOCAL_CFLAGS += -DANDROID_LARGE_MEMORY_DEVICE
endif

В моем понимании, все CPV для ArmV7 имеют VFP, поэтому анимированные GIF должны работать на современном процессоре с ArmV7.

0

Анимированная поддержка GIF была добавлена ​​в Android в версии 2.2. Если вы проверите версию, используя Build.VERSION, она сообщит вам, работают ли GIF.

  • 3
    Я получал сообщения от людей, использующих 2.2, что GIF не работают.
  • 0
    Этот ответ недействителен. Есть некоторые телефоны Android 2.1 с поддержкой GIF, включенной производителем, и есть некоторые телефоны Android 2.3 без поддержки GIF вообще.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню