Home

Awesome

<a align="center" href="https://www.npmjs.com/package/nativescript-gif"> <h3 align="center">NativeScript-Gif</h3> </a> <h4 align="center">NativeScript plugin to use GIFs in your application.</h4> <p align="center"> <a href="https://www.npmjs.com/package/nativescript-gif"> <img src="https://github.com/bradmartin/nativescript-gif/workflows/Build%20CI/badge.svg" alt="Action Build"> </a> <a href="https://www.npmjs.com/package/nativescript-gif"> <img src="https://img.shields.io/npm/v/nativescript-gif.svg" alt="npm"> </a> <a href="https://www.npmjs.com/package/nativescript-gif"> <img src="https://img.shields.io/npm/dt/nativescript-gif.svg?label=npm%20downloads" alt="npm"> </a> <br /> </p>

Installation

NativeScript Version 7+: tns plugin add nativescript-gif NativeScript Version prior to 7: tns plugin add nativescript-gif@4.0.6

The native libraries used to handle rendering GIFs for Android & iOS.

Android LibraryiOS CocoaPod
Koral-- / android-gif-drawableFLAnimatedImage by Flipboard
Android ScreeniOS Screen
GifExampleiOSSample

Usage

Plain NativeScript

<span style="color:red">IMPORTANT: </span>Make sure you include xmlns:Gif="nativescript-gif" on the Page element.

<Page xmlns="http://schemas.nativescript.org/tns.xsd"
      xmlns:Gif="nativescript-gif" loaded="pageLoaded">
  <StackLayout>
    <Gif:Gif headers="{{headersJSON}}" src="~/gifs/bill.gif" height="100" />
    <Gif:Gif src="https://media4.giphy.com/media/3uyIgVxP1qAjS/200.gif" height="200" />
  </StackLayout>
</Page>

NativeScript Angular

import { registerElement } from 'nativescript-angular/element-registry';
import { Gif } from 'nativescript-gif';
registerElement('Gif', () => Gif);
HTML
<StackLayout>
    <Gif [headers]="headersJSON" src="~/gifs/bill.gif" height="100" ></Gif>
    <Gif src="https://media4.giphy.com/media/3uyIgVxP1qAjS/200.gif" height="200" ></Gif>
</StackLayout>

Bundling Note:

Be sure that you have your .gifs added to the globs of the CopyWebpackPlugin as part of your webpack.config.

Prior to Webpack 5

Demo app sample: https://github.com/bradmartin/nativescript-gif/blob/master/demo/webpack.config.js#L282

{
  from: {
    glob: '**/*.gif';
  }
}

Webpack 5+

const webpack = require('@nativescript/webpack')

module.exports = env => {
  webpack.init(env)

  webpack.Utils.addCopyRule('**/*.gif')

  return webpack.resolveConfig()
}

Properties

API

start()
stop()
getFrameCount()
isPlaying()

Android Only
getDuration()
reset()
setSpeed(speedFactor: Number)
recycle()