Чтобы использовать GIF в качестве заставки в приложении Flutter, вы можете использовать несколько методов. Вот несколько примеров с фрагментами кода:
Метод 1: использование пакета flutter_svg
import 'package:flutter/material.dart';
import 'package:flutter_svg/flutter_svg.dart';
class SplashScreen extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
body: Center(
child: SvgPicture.asset(
'assets/splash_screen.svg', // Replace with your GIF image path
width: 200,
height: 200,
),
),
);
}
}
Метод 2: использование пакета flare_flutter
import 'package:flutter/material.dart';
import 'package:flare_flutter/flare_actor.dart';
class SplashScreen extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
body: Center(
child: FlareActor(
'assets/splash_screen.flr', // Replace with your GIF image path
animation: 'splash_animation',
fit: BoxFit.contain,
),
),
);
}
}
Метод 3: использование пакета flutter_gifimage
import 'package:flutter/material.dart';
import 'package:flutter_gifimage/flutter_gifimage.dart';
class SplashScreen extends StatefulWidget {
@override
_SplashScreenState createState() => _SplashScreenState();
}
class _SplashScreenState extends State<SplashScreen>
with SingleTickerProviderStateMixin {
late GifController _controller;
@override
void initState() {
super.initState();
_controller = GifController(vsync: this);
_controller.addStatusListener((status) {
if (status == AnimationStatus.completed) {
// Perform navigation or other actions after animation completion
}
});
_controller.repeat(min: 0, max: 29, period: Duration(milliseconds: 5000));
}
@override
void dispose() {
_controller.dispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
return Scaffold(
body: Center(
child: GifImage(
controller: _controller,
image: AssetImage('assets/splash_screen.gif'), // Replace with your GIF image path
),
),
);
}
}