2016-07-03 19 views
12

Desidero visualizzare una semplice gif tramite URL nel mio tag Image nella mia app Android react-native, ma quando la avvio non viene visualizzata alcuna immagine. Il codice come previsto nella docs funziona solo per iOS, ma non per Android:Come visualizzare GIF in app Android Android reattiva?

<Image 
    style={styles.gif} 
    source={{uri: 'http://38.media.tumblr.com/9e9bd08c6e2d10561dd1fb4197df4c4e/tumblr_mfqekpMktw1rn90umo1_500.gif'}} 
/> 

C'era una domanda simile qui, ma come già detto questo funziona solo per iOS: How do I display an animated gif in React Native?
questo proposito commettere dovrebbe lavoro però: https://github.com/facebook/react-native/commit/fcd7de5301655b39832d49908e5ca72ddaf91f7e

+0

se un'immagine GIF si sta semplicemente caricando attraverso il link allora perché non utilizzare WebView? –

risposta

28

abbiamo fatto la libreria di base più piccola, rendendo le cose come supporto GIF opzionale.

A causa di quello we have to manually opt-in for gif support in Android. Aggiungere la seguente riga al file Android/app/build.gradle sotto le dipendenze:

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

Così la vostra sezione dipendenze potrebbe assomigliare a questo:

dependencies { 
    compile fileTree(dir: "libs", include: ["*.jar"]) 
    compile "com.android.support:appcompat-v7:23.0.1" 
    compile "com.facebook.react:react-native:+" // From node_modules 
    compile 'com.facebook.fresco:animated-gif:0.10.0' // For animated GIF support 

Questo risolve il problema per la build di debug, ma se si vuole risolvere anche nella vostra build di rilascio di loro momento in cui si deve aggiungere la seguente riga al file Proguard-regole:

-keep class com.facebook.imagepipeline.animated.factory.AnimatedFactoryImpl { public AnimatedFactoryImpl(com.facebook.imagepipeline.bitmaps.PlatformBitmapFactory, com.facebook.imagepipeline.core.ExecutorSupplier); } 

più informati su questo qui: https://github.com/facebook/fresco/issues/1177

Questo è stato risolto con questo commit e sarà incluso nella prossima versione.

+0

quando dici che la prossima versione è quella versione 0.13.0? Ho appena provato questa versione e il problema sembra essere ancora presente –

+1

'compile 'com.facebook.fresco: animated-gif: 0. +'' – antoine129

7

Per ultima reagiscono versione nativa è possibile aggiungere queste dipendenze:

compile 'com.facebook.fresco:animated-base-support:0.14.1' 
compile 'com.facebook.fresco:animated-gif:0.14.1' 
+0

Funziona come un fascino. . :) grazie –

9

Tutto quanto sopra non ha funzionato per me con l'ultima Reagire Native (v0.48). Ho dovuto aggiungere le seguenti dipendenze nel mio android/app/build.gradle

compile 'com.facebook.fresco:fresco:1.5.0' compile 'com.facebook.fresco:animated-gif:1.5.0'

+0

ha funzionato per voi in iOS? –

+0

@AdirZoari Scusa se non l'ho provato con iOS. –

Problemi correlati