Flutterでアニメーション画像をどのようなフォーマットで表示したいですか?現時点では、現在利用可能なソリューションはvideo_loaderの1つしかないようです。これはフルスクリーンでのみ動作しますが、私の使用例に合わない。Flutterにアニメーション画像を表示するには?
どのように私はこれを整理することができますか?
Flutterでアニメーション画像をどのようなフォーマットで表示したいですか?現時点では、現在利用可能なソリューションはvideo_loaderの1つしかないようです。これはフルスクリーンでのみ動作しますが、私の使用例に合わない。Flutterにアニメーション画像を表示するには?
どのように私はこれを整理することができますか?
https://ezgif.com/splitを使用してフレームを別々の画像に分割し、それらをpubspec.yamlのアセットとして追加することができます。
次に、Animation<int>
を使用して、表示する正しいフレームを選択します。ちらつきを避けるためにgaplessPlayback: true
を設定してください。
たとえば、次のコードはGuillaume Kurkdjianによって作成されたanimated GIFのフレームを表示します。
import 'package:flutter/material.dart';
void main() {
runApp(new MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return new MaterialApp(
theme: new ThemeData.dark(),
home: new MyHomePage(),
);
}
}
class MyHomePage extends StatefulWidget {
@override
State createState() => new MyHomePageState();
}
class MyHomePageState extends State<MyHomePage> with TickerProviderStateMixin {
AnimationController _controller;
Animation<int> _animation;
@override
void initState() {
_controller = new AnimationController(vsync: this, duration: const Duration(seconds: 5))
..repeat();
_animation = new IntTween(begin: 0, end: 116).animate(_controller);
}
Widget build(BuildContext context) {
return new Scaffold(
body: new Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
new AnimatedBuilder(
animation: _animation,
builder: (BuildContext context, Widget child) {
String frame = _animation.value.toString().padLeft(3, '0');
return new Image.asset(
'assets/frame_${frame}_delay-0.04s.png',
gaplessPlayback: true,
);
},
),
new Text('Image: Guillaume Kurkdjian', style: new TextStyle(fontStyle: FontStyle.italic)),
],
),
);
}
}
これは私の好きな答えの一つですStack Overflow –
悲しいことに、それは長い貯蔵寿命を持つ可能性が高いです。将来的に[アニメーションGIFサポート](https://github.com/flutter/flutter/issues/204)が実装されている場合は、その代わりに使用してください! –
は素晴らしく機能します! – sofakingforever
あなたがブロックされていますことをお詫び申し上げます。 https://github.com/flutter/flutter/issues/204この問題を「賞賛」し、ユースケースにコメントを残せますか?ありがとう! –
すでにありました:)しかし、私はコメントを残します – Darky
[もっと速い回答を得るために、どのような状況で私の質問に「緊急」や他の類似のフレーズを追加してもいいですか?](// meta.stackoverflow.com/ q/326569) - これはボランティアに対処する理想的な方法ではなく、おそらく回答を得ることに逆効果があるということです。これをあなたの質問に追加しないでください。 – halfer