2016-02-24 21 views
17

Come posso visualizzare una gif animata in modo che reagisca nativa. Questo è quello che ho provato.Come posso visualizzare una gif animata in React Native?

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

Funziona bene con un file .png, ma quando uso un file .gif è vuoto. Ho letto da qualche parte per provare a rinominare il file .gif in un file .png, ma questo mostra solo un fotogramma della gif animata senza animazione. Qualche idea?

risposta

8

è necessario aggiungere l'estensione e richiedono in questo modo:

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

o

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

RN gestisce le immagini gif bene, controllare this example.

+0

Come faccio a collegare ad una gif nei miei Images.xcassets? –

+1

RN non usa più Images.xcasset. È necessario inserirli in una cartella del progetto e utilizzare un percorso relativo per quel file. –

+0

Dove hai preparato che RN non stia usando più xcassets? –

36

Per impostazione predefinita, le immagini Gif non sono supportate nell'app nativa di Android. È necessario utilizzare Fresco per visualizzare le immagini GIF. Il codice:

Modificare il file android/app/build.gradle e aggiungere il seguente codice:

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.+' 
} 

allora avete bisogno di riunire di nuovo l'applicazione, è possibile visualizzare le immagini GIF in due modi come questo.

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 }}/> 

Spero che sia utile agli altri,

+3

Per le GIF animate, 'animated-base-support' non funziona per me (RN 0.41.0), tuttavia' animated-gif' (il primo in WebP) funziona. Questo è quello che ho aggiunto al mio file 'build.gradle':' compile "com.facebook.fresco: animated-gif: 1.1.0" ' –

+0

@RyanH. Avete sia "base di supporto animata? * Che *' gif animato "? Mi chiedo se 'base-supporto animato 'è un requisito di base e' gif animato' è semplicemente raggruppato in modo errato con webp. – cedmans

+0

@cedmans Ho solo bisogno di 'gif animato '. Vedi http://stackoverflow.com/q/38169519/305383 –

Problemi correlati