Flutter天气动画展示插件weather_animation的使用

发布于 1周前 作者 caililin 来自 Flutter

Flutter天气动画展示插件weather_animation的使用

插件简介

weather_animation 是一个用于创建和自定义天气场景的Flutter插件。它允许开发者以简单、免费的方式创建丰富多彩的天气动画,而无需依赖于gif/png等资源文件。

主要特点

  • 🎨 无需使用gif/png资源即可创建多彩的天气场景。
  • 🆓 免费许可,可用于个人或商业项目。
  • 🎛 简单创建场景,并根据需要轻松定制。
  • 🌅 提供在线配置器,方便创建天气场景。
  • 😅 让开发过程更加有趣。

使用方法

引入库

在您的Dart代码中引入weather_animation库:

import 'package:weather_animation/weather_animation.dart';

使用WeatherScene

WeatherScene枚举提供了多种预设的天气场景,您可以直接通过getter来获取并使用这些场景:

@Override
Widget build(BuildContext context) {
  return WeatherScene.sunset.sceneWidget;
}

或者,如果您想要更多的自定义选项,可以使用WrapperScene.weather:

@Override
Widget build(BuildContext context) {
  return WrapperScene.weather(scene: WeatherScene.sunset);
}

使用WrapperScene

您还可以通过指定一组天气小部件和颜色列表来创建漂亮的背景渐变效果:

@Override
Widget build(BuildContext context) {
  return const WrapperScene(
    colors: [
      Color(0xff283593),
      Color(0xffff8a65),
    ],
    children: [
      SunWidget(),
      CloudWidget(),
      WindWidget(),
    ],
  );
}

如需进一步调整天气小部件的属性,可以通过传递配置对象实现:

SunWidget(
  sunConfig: SunConfig(
    width: 262.0,
    blurSigma: 10.0,
    blurStyle: BlurStyle.solid,
    isLeftLocation: true,
    coreColor: Color(0xffffa726),
    midColor: Color(0xd6ffee58),
    outColor: Color(0xffff9800),
    animMidMill: 2000,
    animOutMill: 1800,
  ),
),

使用weather_configurator应用

  • 在线:访问 Weathunits configurator
  • 离线:构建项目后,在路径example/weathunits_configurator下找到应用(了解更多详情)

weather_configurator_screen

完整示例代码

将以下代码复制到您的项目中运行,即可查看所有预设天气场景的效果:

// Copy this code into your project and run

import 'package:flutter/gestures.dart';
import 'package:flutter/material.dart';
import 'package:weather_animation/weather_animation.dart';

void main() => runApp(const ExampleApp());

class ExampleApp extends StatelessWidget {
  const ExampleApp({super.key});

  @override
  Widget build(BuildContext context) {
    return const MaterialApp(
      title: 'Weather animation package - example',
      debugShowCheckedModeBanner: false,
      home: HomePage(),
    );
  }
}

class HomePage extends StatelessWidget {
  const HomePage({super.key});

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: ScrollConfiguration(
        behavior: ScrollConfiguration.of(context).copyWith(
          dragDevices: PointerDeviceKind.values.toSet(),
        ),
        child: PageView(
          children: [for (final w in WeatherScene.values) w.sceneWidget],
        ),
      ),
    );
  }
}

通过上述内容,相信您已经了解了如何使用weather_animation插件为您的Flutter应用程序添加生动有趣的天气动画效果。希望这能为您的开发工作带来便利与乐趣!


更多关于Flutter天气动画展示插件weather_animation的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter天气动画展示插件weather_animation的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


当然,以下是如何在Flutter项目中使用weather_animation插件来展示天气动画的示例代码。这个插件可以为你提供动态的天气动画效果,非常适合用于天气预报类应用。

首先,确保你的Flutter项目已经创建好了。如果还没有,你可以使用以下命令创建一个新的Flutter项目:

flutter create weather_app
cd weather_app

然后,在pubspec.yaml文件中添加weather_animation依赖:

dependencies:
  flutter:
    sdk: flutter
  weather_animation: ^latest_version  # 请替换为实际最新版本号

之后,运行以下命令来安装依赖:

flutter pub get

接下来,在你的main.dart文件中,你可以使用WeatherAnimation小部件来展示天气动画。以下是一个完整的示例代码:

import 'package:flutter/material.dart';
import 'package:weather_animation/weather_animation.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Weather Animation Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: WeatherAnimationScreen(),
    );
  }
}

class WeatherAnimationScreen extends StatefulWidget {
  @override
  _WeatherAnimationScreenState createState() => _WeatherAnimationScreenState();
}

class _WeatherAnimationScreenState extends State<WeatherAnimationScreen> {
  // 定义一个变量来存储当前的天气类型
  WeatherType currentWeatherType = WeatherType.sunny;

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Weather Animation Demo'),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            // 展示天气动画
            WeatherAnimation(
              weatherType: currentWeatherType,
              size: 200,  // 设置动画的大小
            ),
            SizedBox(height: 20),
            // 提供一个按钮来切换天气类型
            ElevatedButton(
              onPressed: () {
                // 随机选择一个天气类型
                setState(() {
                  final types = WeatherType.values;
                  currentWeatherType = types[Random().nextInt(types.length)];
                });
              },
              child: Text('Change Weather'),
            ),
          ],
        ),
      ),
    );
  }
}

在这个示例中,我们创建了一个简单的Flutter应用,其中包含一个WeatherAnimation小部件来展示天气动画。我们使用了WeatherType枚举来定义天气类型,并通过点击按钮来随机切换天气类型。

WeatherType枚举在weather_animation插件中定义,常见的天气类型包括sunnycloudyrainysnowy等。

请确保你已经正确安装了weather_animation插件,并且使用了正确的版本号。你可以通过查看插件的官方文档或pubspec.lock文件来获取最新版本号。

运行这个示例代码,你应该能看到一个带有天气动画的Flutter应用,并且可以通过点击按钮来切换不同的天气动画效果。

回到顶部