2016-02-24 19 views
17

Jak wyświetlić animowany GIF w reakcji natywnej. Oto, co próbowałem.Jak wyświetlić animowany GIF w React Native?

<Image source={{uri: "loading"}} />

Współpracuje z pliku PNG, ale kiedy używam .gif jest pusty. Czytałem gdzieś, aby spróbować zmienić nazwę pliku .gif na .png, ale po prostu wyświetla się jedna klatka animowanego gifa bez animacji. Jakieś pomysły?

Odpowiedz

8

Trzeba dodać rozszerzenie i wymaga to tak:

<Image source={require('./path/to/image/loading.gif')} /> 

lub

<Image source={{uri: 'http://www.urltogif/image.gif'}} /> 

RN obsługuje również GIF, sprawdź this example.

+0

Jak połączyć do gif w moim Images.xcassets? –

+1

RN nie używa już plików Images.xcassets. Musisz umieścić je w folderze w projekcie i użyć względnej ścieżki do tego pliku. –

+0

Gdzie byłeś gotowy, że RN nie używa już xcassets? –

36

Domyślnie obrazy Gif nie są obsługiwane w natywnej aplikacji reagującej na Androida. Musisz ustawić użycie Fresco, aby wyświetlić obrazy gif. Kod:

edytować plik android/app/build.gradle i dodaj następujący kod:

dependencies: { 

    ... 

    compile 'com.facebook.fresco:fresco:1.+' 

    // For animated GIF support 
    compile 'com.facebook.fresco:animated-gif:1.+' 

    // For WebP support, including animated WebP 
    compile 'com.facebook.fresco:animated-webp:1.+' 
    compile 'com.facebook.fresco:webpsupport:1.+' 
} 

potem trzeba ponownie pakiet aplikacji, można wyświetlać obrazy gif na dwa sposoby jak ten.

1-> <Image source={require('./../images/load.gif')} style={{width: 100, height: 100 }}/> 
    2-> <Image source={{uri: 'http://www.clicktorelease.com/code/gif/1.gif'}} style={{width: 100, height:100 }}/> 

Mam nadzieję, że to jest pomocne dla innych,

+3

W przypadku animowanych GIF-ów "animated-base-support" nie działa dla mnie (RN 0.41.0), jednak działa "animowany-gif" (pierwszy w WebP). To właśnie dodałem do mojego pliku 'build.gradle':' compile "com.facebook.fresco: animated-gif: 1.1.0" ' –

+0

@RyanH. Czy posiadasz zarówno animowane-bazowe-wsparcie' * i * 'animowane-gif'? Zastanawiam się, czy 'animated-base-support' jest podstawowym wymaganiem, a' animated-gif' jest niepoprawnie pogrupowane z webp. – cedmans

+0

@cedmans Potrzebowałem tylko 'animowanego-gif'. Zobacz http://stackoverflow.com/q/38169519/305383 –