Андроид анимация гифка

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

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


person Sebastian Nowak    schedule 10.10.2011    source источник


Ответы (5)


Да, похоже, это распространенная проблема. В отчете об ошибках опубликованы некоторые обходные пути, но похоже, что это не функция Android Core.

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

person Lukas Knuth    schedule 10.10.2011
comment
Я знаю, что не могу, поэтому я спросил, как проверить, поддерживаются ли они на текущем устройстве. - person Sebastian Nowak; 10.10.2011
comment
Что ж, если решения, предоставленного @Prios_KR, недостаточно, боюсь, решения нет. - person Lukas Knuth; 10.10.2011

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

person Prios_KR    schedule 10.10.2011
comment
Спасибо, но я ищу надежный способ проверить, действительно ли текущее устройство поддерживает анимированные GIF-файлы. Решение, которое работает большую часть времени, недостаточно. - person Sebastian Nowak; 10.10.2011

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

person Zer0seeker    schedule 27.01.2012
comment
Не очень помогает в этом случае: p - person keyser; 28.10.2012

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

person jamuraa    schedule 10.10.2011
comment
Я получил сообщения от людей, использующих 2.2, что GIF-файлы не работают. - person Sebastian Nowak; 10.10.2011
comment
Этот ответ недействителен. Есть телефоны с Android 2.1 с включенной производителем поддержкой GIF, а есть телефоны с Android 2.3 вообще без поддержки GIF. - person Sebastian Nowak; 11.11.2015

В файле Android C++ 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

Насколько я понимаю, все процессоры ArmV7 имеют VFP, поэтому анимированные GIF-файлы должны работать на современных процессорах с ArmV7.

person eikuh    schedule 12.12.2014