Flutter: GIF Image Asset paintImage() для CustomPaint не анимируется
Я хочу добавить актив Animated GIF в виджет CustomPaint, GIF рисуется, но не анимируется.
Я загружаю анимированное изображение gif из ресурсов следующим образом:
Future<void> loadAndAssignImageAssets() async {
fireImage = await loadImageAssets('assets/images/icegif-1624.gif');
}
Future<ui.Image> loadImageAssets(String assetPath) async {
final data = await rootBundle.load(assetPath);
final list = Uint8List.view(data.buffer);
final completer = Completer<ui.Image>();
ui.decodeImageFromList(list, completer.complete);
return completer.future;
}
Я передаю GIF виджету CustomPaint следующим образом:
@override
Widget build(BuildContext context) {
return Scaffold(
body: FutureBuilder(
future: loadAndAssignImageAssets(),
builder: (context, snapshot) {
if (snapshot.connectionState == ConnectionState.waiting) {
return Center(child: CircularProgressIndicator());
}
return CustomPaint(
painter: BurnPainter(fireImage),
child: Container(),
);
}),
);
}
}
Тогда это метод, в котором я рисую GIF внутри класса BurnPainter:
void _drawFire(Size size, Canvas canvas, Rect rectangle) {
var flameImageWidth = rectangle.width;
var flameImageHeight = rectangle.height / 5;
paintImage(
canvas: canvas,
rect: Rect.fromLTWH(
(rectangle.left),
(rectangle.top),
flameImageWidth,
flameImageHeight,
),
image: fireImage,
filterQuality: FilterQuality.low,
fit: BoxFit.fill,
);
}
Изображение рисуется, но не анимируется. Итак, как сделать так, чтобы анимированный GIF-файл анимировался при рисовании в виджете CustomPaint?