2016-02-24 37 views
17

反応したネイティブのアニメーションgifを表示するにはどうしたらいいですか?これが私が試したことです。React NativeにアニメーションGIFを表示するにはどうすればよいですか?

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

これは、.pngのファイルと正常に動作しますが、私は.GIFファイルを使用する場合には、空白です。 .gifの名前を.pngに変更しようとどこかで読んでいますが、アニメーションがないアニメーションGIFの1つのフレームだけが表示されます。何か案は?あなたは拡張子を追加し、それをこのように要求する必要がある

答えて

8

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

または

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

RNがうまくGIF画像を処理し、this exampleを確認してください。

+0

、それは他の人に役立つことを願いますか? –

+1

RNはImages.xcassetsを使用しません。それらをプロジェクトのフォルダに配置し、そのファイルへの相対パスを使用する必要があります。 –

+0

RNがxcassetsをもう使用していない場所はどこですか? –

36

デフォルトでは、GIF画像はAndroid対応ネイティブアプリでサポートされていません。 gifイメージを表示するには、Frescoの使用を設定する必要があります。 コード:

編集し​​ファイルと次のコードを追加します。

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

を、あなたはあなたがこのような二つの方法でGIF画像を表示することができ、再びアプリをバンドルする必要があります。

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

私は私のImages.xcassetsにGIFへリンクするにはどうすればよい

+3

アニメーションGIFの場合、 'animated-base-support'は私のためには機能しません(RN 0.41.0)。しかし、' animated-gif'(WebPの下の最初のもの)が動作します。これが私の 'build.gradle'ファイルに追加されたものです:' compile "com.facebook.fresco:animated-gif:1.1.0" ' –

+0

@RyanH。 'animated-base-support' *と' animated-gif'の両方を持っていますか? 'animated-base-support'が基本的な要件で、' animated-gif'がwebpで間違ってグループ化されているのだろうかと思います。 – cedmans

+0

@cedmans私は 'animated-gif'だけ必要でした。 http://stackoverflow.com/q/38169519/305383を参照してください。 –

関連する問題