2011-10-10 141 views
1

我正在嘗試使用WebView顯示動畫GIF。它在大多數設備上都能正常工作,但其中一些設備不支持動畫並顯示靜態GIF。Android動畫GIF

我如何檢測設備支持的WebView GIF動畫,所以如果沒有我可以顯示相應的消息?

回答

1

呀,這接縫是a common issue。在Bug報告中發佈了一些解決方法,但它接受了它不是Android核心功能。

一些公司(如HTC)可能照顧這個自己,但你不能依靠gif動畫的工作。

+0

我知道我不能,這就是爲什麼我問如何檢查它們是否支持當前設備。 –

+0

好吧,如果@Prios_KR提供的解決方案不夠用,恐怕沒有解決辦法。 –

0

GIF動畫的支持,加入到Android 2.2版本。如果您使用Build.VERSION檢查版本,它應該告訴你GIF是否工作。

+3

我從使用2.2的人那裏收到GIF不工作的報告。 –

+0

此答案無效。有一些Android 2.1手機支持GIF製造商,並且有一些Android 2.3手機根本沒有GIF支持。 –

1

正如你可以用這個鏈接http://code.google.com/p/android/issues/detail?id=3422看到。 這個問題至今仍未解決兩年。 但是大多數設備在薑餅中運行良好。所以,你可能要檢查操作系統級別(從9級),這是工程或不

+0

謝謝,但我正在尋找一種可靠的方法來檢查當前設備是否實際支持動畫GIF。 「大多數時間工作」的解決方案是不夠的。 –

1

討厭這樣說,但最有效的方法找出來。打開一個GIF圖像,如果它不玩......它的設備不支持

+0

在這種情況下並沒有真正的幫助:p – keyser

0

在Android C++文件external/webkit/WebCore/platform/graphics/android/ImageSourceAndroid.cpp上有一個函數static bool should_use_animated_gif(int width, int height)如果ANDROID_LARGE_MEMORY_DEVICE定義返回true

Here,Leon Scroggins(似乎是谷歌工程師)說ANDROID_LARGE_MEMORY_DEVICE被定義爲「對於所有帶有VFP的手臂設備以及所有非手臂設備」。

編輯:這是由external/webkit/Android.mk證實:

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

在我的理解,所有的ARMv7的CPU確實有一個數據庫,以便GIF動畫應該在現代的CPU與ARMv7的工作。