Flutter月相计算插件moon_phase的使用
Flutter月相计算插件moon_phase的使用
Flutter 插件 moon_phase
可以根据月亮的相位创建月亮小部件。
开始使用
只需添加 MoonWidget
并在其中填入你想要查看的每一个 DateTime
。这样,月亮的相位就会被显示出来。
MoonWidget(
date: DateTime.now(),
)
这是 示例应用 的效果,该应用每 12 小时显示一次月亮的形状,持续 30 天。
这很酷!
更多学习
MoonWidget(
date: DateTime.now(),
resolution: 128,
size: 64,
moonColor: Colors.amber,
earthshineColor: Colors.blueGrey.shade900,
)
参数说明
date
- 显示的日期。
- 时分秒会被计算在内。
resolution
- 分辨率将作为月亮半径。
- 较大的分辨率需要更多的数学运算,会使小部件变得沉重。
- 如果只需要一个小图标或标记,可以输入较小的数字。
size
- 设置
MoonWidget
的大小。
moonColor
- 月亮亮面的颜色。
earthshineColor
- 月亮暗面的颜色。
关于
- 发布者 - enoosoft
- 参考 - (Audrius Meskauskas’s MoonView)
完整示例
以下是一个完整的示例,展示了如何使用 moon_phase
插件。
import 'package:flutter/material.dart';
import 'package:moon_phase/moon_widget.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatefulWidget {
const MyApp({Key? key}) : super(key: key);
[@override](/user/override)
State<MyApp> createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
[@override](/user/override)
void initState() {
super.initState();
}
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: const Text('MoonWidget 示例应用'),
),
body: Center(
child: Padding(
padding: const EdgeInsets.all(30.0),
child: Wrap(
spacing: 10,
runSpacing: 10,
direction: Axis.horizontal,
children: _moonPhases(),
),
),
),
),
);
}
List<Widget> _moonPhases() {
var _list = <Widget>[];
for (int i = 0; i < 30 * (24 / 12); i++) {
_list.add(
MoonWidget(
date: DateTime(2021, 10, 6, 5).add(Duration(hours: i * 12)),
resolution: 64,
size: 48,
moonColor: Colors.amber,
earthshineColor: Colors.blueGrey.shade900,
),
);
}
return _list;
}
}
更多关于Flutter月相计算插件moon_phase的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
1 回复