扑动动画启动画面(gif)

时间:2019-08-21 13:11:39

标签: flutter

在可绘制文件夹中 我添加了gif图片文件(splashscreen.gif)

true

我这样添加。 但仅显示gif的第一张图片。如何使用动画启动画面或gif图片?
我看到了如何制作启动画面,但几乎他们制作了其他类(例如MyApp)并使用<?xml version="1.0" encoding="utf-8"?> <!-- Modify this file to customize your launch splash screen --> <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/splashscreen" /> <!-- You can insert your own image assets here --> <!-- <item> <bitmap android:gravity="center" android:src="@mipmap/launch_image" /> </item> --> </layer-list> ,但对我来说,我需要在运行应用程序之前先进行http调用和位置要求。因此我需要先运行lpp屏幕,然后再运行应用。

2 个答案:

答案 0 :(得分:1)

您不能添加动画启动画面,启动画面必须是静态图像。您可以将.gif的第一个图像添加为初始屏幕,然后导航到与初始屏幕图像具有相同初始视图的另一页,向网络服务请求所需的内容,等待响应,然后从中进行动画处理在那里。

从本质上讲,这就是iOS Twitter应用程序启动时的功能。这是它的动画“启动屏幕”。

enter image description here

答案 1 :(得分:0)

我只使用一种颜色作为iOS和Android的本机启动屏幕,并使用Flutter制作了动画启动屏幕。实际上,我使用Flare进行了Splash Animation(并将Flare运行时置于混乱状态),并简单地使用了以下代码:

import 'package:flutter/material.dart';
import 'package:flare_flutter/flare_actor.dart';

class SplashScreen extends StatelessWidget {

  @override
  Widget build(BuildContext context) {
    return Scaffold(
        backgroundColor: const Color.fromRGBO(250, 224, 61, 1.0),
        body: Center(
          child: Container(
              child: FlareActor(
                "assets/flare/splash.flr",
                callback: (nameOfAnimation) =>
                    Navigator.pushReplacementNamed(context, "/login"),
                fit: BoxFit.none,
                animation: "splash",
              )),
        ));
  }
}

这里重要的是要具有与该代码相同的本机启动色,即: const Color.fromRGBO(250,224,61,1.0),

动画制作完成后,将调用回调,该回调将路由到登录屏幕。