How can I display an animated gif in react native. This is what I've tried.
<Image source={{uri: "loading"}} />
It works fine with a .png
file but when I use a .gif
file it's blank. I read somewhere to try renaming the .gif
to a .png
but that just displays one frame of the animated gif with no animation. Any ideas?
If you are using a lower react-native version, check react-native documentation for gif support for that particular version. After adding the dependency restart the server once using the following command. Step 4: Inside AddGif. js we will show GIf using Image component of the react-native library.
To render an animated gif in a React component: Import the gif as import myGif from './path-to-my-gif. gif' . Add an img element that shows the gif, e.g. <img src={myGif} alt="" /> .
When building your own native code, GIF and WebP are not supported by default on Android. You will need to add some optional modules in android/app/build. gradle , depending on the needs of your app.
For RN < 0.60
By default the Gif images are not supported in android react native app. You need to set use Fresco to display the gif images. The code:
Edit your android/app/build.gradle
file and add the following code:
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.+' }
then you need to bundle the app again, You can display the gif images in two ways like this.
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 }} />
For RN >= 0.60
implementation 'com.facebook.fresco:animated-gif:1.12.0' //instead of implementation 'com.facebook.fresco:animated-gif:2.0.0' //use
I hope it is helpful to others,
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With