Android动画GIF

时间:2011-10-10 13:20:35

标签: android webview gif animated

我正在尝试使用WebView显示动画GIF。它在大多数设备上都能正常工作,但仍然有些设备不支持动画,并且会显示静态GIF。

如何在WebView中检测设备是否支持动画GIF,如果不支持,我可以显示相应的消息?

5 个答案:

答案 0 :(得分:1)

是的,这个接缝是a common issue。 Bug报告中发布了一些解决方法,但它认为它不是Android Core功能。

某些公司(如HTC)可能会自己处理这个问题,但你不能依赖动画GIF来工作。

答案 1 :(得分:1)

正如您可以通过此链接http://code.google.com/p/android/issues/detail?id=3422看到的那样。 这个问题在两年内仍未解决。 但是大多数设备在Gingerbread中运行良好。因此,您可以检查操作系统级别(从级别9开始)是否有效

答案 2 :(得分:1)

讨厌这样说,但这是最有效的方法。打开GIF图像,如果它没有播放......设备不支持

答案 3 :(得分:0)

动画GIF支持已在2.2版中添加到Android。如果您使用Build.VERSION检查版本,则应告知您GIF是否正常工作。

答案 4 :(得分:0)

在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

Here,Leon Scroggins(似乎是Google的工程师)说ANDROID_LARGE_MEMORY_DEVICE是针对所有带有VFP和所有非手臂设备的手臂设备定义的。“

修改:external/webkit/Android.mk确认了这一点:

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

根据我的理解,所有ArmV7 cpus都有VFP,因此动画GIF应该可以在现代cpus上使用ArmV7。