{"id":13465546,"url":"https://github.com/aliyigitbireroglu/flutter-image-sequence-animator","last_synced_at":"2026-02-23T17:24:59.716Z","repository":{"id":35323811,"uuid":"202873581","full_name":"aliyigitbireroglu/flutter-image-sequence-animator","owner":"aliyigitbireroglu","description":"A simple widget for animating a set of images with full custom controls as an alternative to using a GIF file.","archived":false,"fork":false,"pushed_at":"2022-04-11T00:16:32.000Z","size":469,"stargazers_count":153,"open_issues_count":6,"forks_count":30,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-10-23T06:38:40.604Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Dart","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/aliyigitbireroglu.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-08-17T11:39:25.000Z","updated_at":"2025-08-29T09:20:15.000Z","dependencies_parsed_at":"2022-08-08T07:16:07.419Z","dependency_job_id":null,"html_url":"https://github.com/aliyigitbireroglu/flutter-image-sequence-animator","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/aliyigitbireroglu/flutter-image-sequence-animator","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aliyigitbireroglu%2Fflutter-image-sequence-animator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aliyigitbireroglu%2Fflutter-image-sequence-animator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aliyigitbireroglu%2Fflutter-image-sequence-animator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aliyigitbireroglu%2Fflutter-image-sequence-animator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aliyigitbireroglu","download_url":"https://codeload.github.com/aliyigitbireroglu/flutter-image-sequence-animator/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aliyigitbireroglu%2Fflutter-image-sequence-animator/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29749022,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-23T07:44:07.782Z","status":"ssl_error","status_checked_at":"2026-02-23T07:44:07.432Z","response_time":90,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-07-31T15:00:31.759Z","updated_at":"2026-02-23T17:24:59.700Z","avatar_url":"https://github.com/aliyigitbireroglu.png","language":"Dart","funding_links":[],"categories":["Components","组件","Dart","UI [🔝](#readme)"],"sub_categories":["UI"],"readme":"# image_sequence_animator\n\n[comment]: \u003c\u003e (Badges)\n\u003ca href=\"https://www.cosmossoftware.coffee\"\u003e\n   \u003cimg alt=\"Cosmos Software\" src=\"https://img.shields.io/badge/Cosmos%20Software-Love%20Code-red\" /\u003e\n\u003c/a\u003e\n\n[![Pub](https://img.shields.io/pub/v/image_sequence_animator?color=g)](https://pub.dev/packages/image_sequence_animator)\n[![License](https://img.shields.io/github/license/aliyigitbireroglu/flutter-image-sequence-animator?color=blue)](https://github.com/aliyigitbireroglu/flutter-image-sequence-animator/blob/master/LICENSE)\n\n[comment]: \u003c\u003e (Introduction)\nA simple widget for animating a set of images with full custom controls as an alternative to using a GIF file.\n\n**If you have a GIF file you would like to use with this package, I recommend [EZGIF](https://ezgif.com/split) to convert your GIF file to an image\n sequence.**\n\n**It is highly recommended to read the documentation and run the example project on a real device to fully understand and inspect the full range\n of capabilities.**\n\n[comment]: \u003c\u003e (ToC)\n[Media](#media) | [Description](#description) | [How-to-Use](#howtouse)\n\n[comment]: \u003c\u003e (Recent)\n## Recent\n* **[isOnline] is added. If your [folderName] is an online path, this value should be set to true.**\n    \n* **[waitUntilCacheIsComplete] is added. If you want the [ImageSequenceAnimator] to wait until the entire image sequence is cached, this value should be set\n  to true i. Otherwise, the [ImageSequenceAnimator] will invoke [onReadyToPlay] and start playing if [isAutoPlay] is set to true when it approximates that the \n  remaining caching can be completed without causing stutters. This value is only used if [isOnline] is set to true.**\n  \n* **[cacheProgressIndicatorBuilder] is added. If you want to display a widget until the [ImageSequenceAnimator] is ready to be played, use this function.**\n* * *\n\n\n[comment]: \u003c\u003e (Media)\n\u003ca name=\"media\"\u003e\u003c/a\u003e\n## Media\n\nWatch on **Youtube**:\n\n\u003ca href=\"https://youtu.be/xZ9vdVkI4Vc\"\u003e\n   \u003cimg alt=\"Image Sequence Animator\" src=\"https://www.cosmossoftware.coffee/Common/Portfolio/GIFs/FlutterImageSequenceAnimator.jpg\" height=\"450\" max-height=\"450\"/\u003e\n\u003c/a\u003e\n\n\n[comment]: \u003c\u003e (Description)\n\u003ca name=\"description\"\u003e\u003c/a\u003e\n## Description\nThis simple widget for animating a set of images **(a.k.a an image sequence)** with full custom controls as an alternative to using a GIF file.\n\nGIF files are, as far as I know, not possible to control. With this package, you will have full control over your image sequence like controlling a\nvideo. You can loop, boomerang, change the color, play, pause, stop, skip, rewind, restart and more. \n\n\n[comment]: \u003c\u003e (How-to-Use)\n\u003ca name=\"howtouse\"\u003e\u003c/a\u003e\n## How-to-Use\nFirst, add your image sequence to your assets and update the \"pubspec.yaml\" accordingly. \n\nThen create an ImageSequenceAnimator widget as shown in the example:\n\n```\nImageSequenceAnimator(\n  \"assets/ImageSequences/MyImageSequence\",  //folderName \n  \"Frame_\",                                 //fileName\n  0,                                        //suffixStart\n  5,                                        //suffixCount \n  \"png\",                                    //fileFormat \n  60,                                       //frameCount\n {Key key,\n  fps               : 60,\n  isLooping         : false,\n  isBoomerang       : false,\n  isAutoPlay        : true,\n  color             : Colors.white,\n  onReadyToPlay     : _onReadyToPlay,\n  onStartPlaying    : _onStartPlaying,\n  onPlaying         : _onPlaying,\n  onFinishPlaying   : _onFinishPlaying})\n\nImageSequenceAnimator(\n  \"https://www.domain.com/ImageSequences/MyImageSequence\",  //folderName \n  \"Frame_\",                                                 //fileName\n  0,                                                        //suffixStart\n  5,                                                        //suffixCount \n  \"png\",                                                    //fileFormat \n  60,                                                       //frameCount\n {Key key,\n  fps               :               60,\n  isLooping         :               false,\n  isBoomerang       :               false,\n  isAutoPlay:                       true,\n  isOnline:                         true,\n  waitUntilCacheIsComplete:         true,\n  cacheProgressIndicatorBuilder:    _cacheProgressIndicatorBuilder,\n  color             :               Colors.white,\n  onReadyToPlay     :               _onReadyToPlay,\n  onStartPlaying    :               _onStartPlaying,\n  onPlaying         :               _onPlaying,\n  onFinishPlaying   :               _onFinishPlaying})\n  \nWidget _cacheProgressIndicatorBuilder(BuildContext _context , double _progress);  \nvoid   _onReadyToPlay(ImageSequenceAnimatorState _imageSequenceAnimator);\nvoid   _onStartPlaying(ImageSequenceAnimatorState _imageSequenceAnimator);\nvoid   _onPlaying(ImageSequenceAnimatorState _imageSequenceAnimator);\nvoid   _onFinishPlaying(ImageSequenceAnimatorState _imageSequenceAnimator); \n```\n\n**Further Explanations:**\n\n*For a complete set of descriptions for all parameters and methods, see the [documentation](https://pub.dev/documentation/image_sequence_animator/latest/).*\n\n* [isLooping] will override [isBoomerang] if both are set to true.\n* All [ImageSequenceProcessCallback] callbacks will return a reference to the created [ImageSequenceAnimator] state. You can save this instance for\n further actions.\n* Use [ImageSequenceAnimatorState]'s \n[void setIsLooping(bool isLooping)], [void setIsBoomerang(bool isBoomerang)], [void setColor(Color color)], [void play({double from: -1.0})],\n[void rewind({double from: -1.0})], [void pause()], [void skip(double value, {double percentage: -1.0})], [void restart()], [void stop()] \nmethods for the corresponding actions.\n* Use [ImageSequenceAnimatorState]'s [bool get isLooping], [bool get isBoomerang], [double get currentProgress], [double get totalProgress], \n[double get currentTime] and [double get totalTime] methods to get the respective values.\n\n\n[comment]: \u003c\u003e (Notes)\n## Notes\nI started using and learning Flutter only some weeks ago so this package might have some parts that don't make sense, that should be completely \ndifferent, that could be much better, etc. Please let me know! Nicely! \n\nAny help, suggestion or criticism is appreciated! \n\nCheers.\n\n[comment]: \u003c\u003e (CosmosSoftware)\n\u003cbr\u003e\u003cbr\u003e\n\u003cimg align=\"right\" src=\"https://www.cosmossoftware.coffee/Common/Images/CosmosSoftwareIconTransparent.png\" width=\"150\" height=\"150\"/\u003e\n\u003cbr\u003e\u003cbr\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faliyigitbireroglu%2Fflutter-image-sequence-animator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faliyigitbireroglu%2Fflutter-image-sequence-animator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faliyigitbireroglu%2Fflutter-image-sequence-animator/lists"}