Flutter 如何去除CustomPaint中的多余形状?
我试着画一个半圆在一个长方形的颤振像这样 但在我的代码中,圆圈超出了白色矩形,变成了黑色背景,如下所示 我应该对代码做什么更改才能得到第一张图片那样的结果 我的代码:-Flutter 如何去除CustomPaint中的多余形状?,flutter,Flutter,我试着画一个半圆在一个长方形的颤振像这样 但在我的代码中,圆圈超出了白色矩形,变成了黑色背景,如下所示 我应该对代码做什么更改才能得到第一张图片那样的结果 我的代码:- import 'package:flutter/material.dart'; class Test extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( home
import 'package:flutter/material.dart';
class Test extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: SafeArea(
child: Scaffold(
backgroundColor: Colors.black,
body: Center(
child: Container(
height: 200,
width: 200,
color: Colors.white,
child: CustomPaint(
painter: Circ(),
child: Column(
children: <Widget>[
],
),
),
),
),
)
),
);
}
}
class Circ extends CustomPainter{
@override
void paint(Canvas canvas, Size size) {
final paint = Paint();
paint.color = Colors.blue.withOpacity(0.2);
var center1 = Offset(200,100);
canvas.drawCircle(center1,100, paint);
}
@override
bool shouldRepaint(CustomPainter oldDelegate) {
return null;
}
}
导入“包装:颤振/材料.省道”;
类测试扩展了无状态小部件{
@凌驾
小部件构建(构建上下文){
返回材料PP(
家:安全区(
儿童:脚手架(
背景颜色:Colors.black,
正文:中心(
儿童:货柜(
身高:200,
宽度:200,
颜色:颜色,白色,
孩子:定制油漆(
画家:Circ(),
子栏(
儿童:[
],
),
),
),
),
)
),
);
}
}
类Circ扩展了CustomPainter{
@凌驾
空心油漆(帆布,尺寸){
最终油漆=油漆();
paint.color=颜色。蓝色。不透明度(0.2);
var center1=偏移量(200100);
画布.画圈(中心1100,油漆);
}
@凌驾
bool应重新绘制(自定义代理){
返回null;
}
}
你的圆圈似乎画在了你想限制绘画的区域之外
如果只希望在画布的指定部分进行绘制,则称为“剪裁”
添加剪辑:
canvas.clipRect(Rect.fromLTWH(0, 0, size.width, size.height));
canvas.drawCircle(center1, 100, paint);
这样,您的圆将不会绘制在给定大小之外