2011-10-10 3 views
1

WebView를 사용하여 애니메이션 GIF를 표시하려고합니다. 그것은 대부분의 장치에서 잘 작동하지만 여전히 일부는 애니메이션을 지원하지 않으며 정적 GIF가 표시됩니다.Android 애니메이션 GIF

장치가 WebView에서 애니메이션 GIF를 지원하는지 어떻게 감지 할 수 있습니까? 그렇지 않은 경우 적절한 메시지를 표시 할 수 있습니까?

답변

1

예, 이음새는 a common issue입니다. 버그 보고서에 몇 가지 해결 방법이 있지만 Android Core 기능이 아니라는 점을 분명히합니다.

일부 회사 (HTC 등)가 직접 처리 한 경우가 있지만 애니메이션 GIF를 사용하여 작업 할 수는 없습니다.

+0

나는 그것이 내가 현재 장치에서 지원되는지 확인하는 방법을 물었습니다. –

+0

@Prios_KR에서 제공하는 솔루션이 충분하지 않다면 솔루션이없는 것 같습니다. –

0

애니메이션 GIF 지원이 버전 2.2의 Android에 추가되었습니다. Build.VERSION을 사용하여 버전을 확인하면 GIF가 작동하는지 여부를 알려야합니다.

+3

2.2를 사용하는 사람들로부터 GIF가 작동하지 않는다는보고를 받았습니다. –

+0

이 답변은 유효하지 않습니다. 제조업체에서 GIF를 지원하는 Android 2.1 휴대 전화가 있으며 GIF를 지원하지 않는 Android 2.3 휴대 ​​전화도 있습니다. –

1

이 링크와 마찬가지로 알 수 있습니다. http://code.google.com/p/android/issues/detail?id=3422. 이 문제는 아직 2 년 동안 해결되지 않았습니다. 그러나 대부분의 장치는 진저 브레드에서 잘 작동합니다. OS 레벨 (레벨 9에서 시작)을 확인해보십시오. 작동하지 않거나 작동하지 않습니다.

+0

고마워요,하지만 현재 장치가 실제로 애니메이션 GIF를 지원하는지 여부를 확인할 수있는 확실한 방법을 찾고 있습니다. "대부분의 시간 동안 일하는"솔루션으로는 충분하지 않습니다. –

1

이렇게하면 싫지만 찾을 수있는 가장 효과적인 방법입니다. GIF 이미지를 열고이 ... 플레이 나던 경우 그것은 ANDROID_LARGE_MEMORY_DEVICE가 정의되어있는 경우 true을 반환하는 함수 static bool should_use_animated_gif(int width, int height)이 안드로이드 C++ 파일 external/webkit/WebCore/platform/graphics/android/ImageSourceAndroid.cpp에서 장치

+0

이 경우 실제로 도움이되지 않습니다 : p – keyser

0

에서 지원되지 않습니다.

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 CPU를가 VFP를해야합니까, 그래서 애니메이션 GIF가하는 ARMv7 현대 CPU에서 작동합니다.