配图来自网络,如侵必删
在Flutter
自定义开发中,我们会接触到Canvas
对象,这个对象是作为自定义画布的。这篇博客分享Canvas
相关的知识,希望对你有所启发。
Canvas绘制方法
使用给定的Paint
对象绘制两点之间的直线。
drawLine(Offset p1,Offset p2,Paint paint);
绘制固定半径的圆形:
drawCircle(Offset c,double radius,Paint paint);
绘制给定的路径:
drawPath(Path path,Paint paint);
绘制长方形:
drawRect(Rect rect,Paint paint);
移动画笔,默认情况下是从(0,0)开始的:
moveTo(double x,double y);
Canvas使用示例
import 'dart:math';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
class MyCustomPainter extends CustomPainter {
@override
void paint(Canvas canvas, Size size) {
var paint = Paint()
..color = Colors.red
..style = PaintingStyle.stroke
..strokeWidth = 8.0
..strokeCap = StrokeCap.round;
canvas.drawLine(
const Offset(0.0, 0.0), Offset(size.width, size.height), paint);
canvas.drawCircle(Offset(size.width / 2, size.height / 2),
sqrt(pow(size.width, 2) + pow(size.width, 2) / 2), paint);
}
@override
bool shouldRepaint(CustomPainter oldDelegate) {
return false;
}
}
这个是画一个禁止标志,大概的使用就是这个样子。