Каков наилучший способ сопоставить масштабирование launch_background android с флаттером Image.asset?

Я пытаюсь создать плавный переход от заставки запуска в анимацию всплеска флаттера.

Для того, чтобы размеры изображения соответствовали первому кадру, необходимо заранее знать соотношение пикселей устройства - однако, выполнение MediaQuery.of() задерживает трепетание изображения, вызывая вспышку между изображением запуска и трепетанием Image.asset().

Есть ли способ отложить заставку запуска? или, возможно, захватить его вместо загрузки изображения снова? или получить devicePixelRatio другим способом?

Спасибо

 Widget build(BuildContext context) {
    return Stack(
      children: <Widget>[
        widget.child,
        IgnorePointer(
          child: Transform.scale(
            scale: _scale,
            alignment: Alignment.center,
            child: Image.asset(
              "assets/images/splash.png",
              fit: BoxFit.none,
              filterQuality: FilterQuality.low,
              color: Color.fromRGBO(255, 255, 255, _opacity),
              colorBlendMode: BlendMode.modulate,
              // this needs to be devicePixelRatio to match system splash
              // BUT calling MediaQuery.of(context) here to get this value 
              // delays the image causing a flash... TODO
              scale: 2.6, // MediaQuery.of(context).devicePixelRatio,
              width: double.infinity,
              height: double.infinity,
            ),
          ),
        ),
      ],
    );
  }

0 ответов

Другие вопросы по тегам