简单粗暴的直接上代码:
import 'dart:math';
import 'package:flutter/material.dart';
class ClockPainter extends CustomPainter {
final BuildContext context;
final DateTime datetime;
// 构造函数,需要传入BuildContext和DateTime
ClockPainter(this.context, this.datetime);
@override
void paint(Canvas canvas, Size size) {
// 计算中心点的坐标
double centerX = size.width / 2;
double centerY = size.height / 2;
Offset center = Offset(centerX, centerY);
// 计算时针、分针和秒针的长度
double minHandLength = centerX * 0.75;
double hourHandLength = centerX * 0.5;
double secHandLength = centerX * 0.85;
// 创建画分针的画笔
Paint minHandPaint = Paint()
..color = Colors.orange
..style = PaintingStyle.stroke
..strokeWidth = 10;
// 计算分针的角度
double minDegrees = 360 / 60 * datetime.minute;
// 计算分针的终点坐标
double minX = centerX + minHandLength * cos(minDegrees * pi /