我想像这样在颤振中在矩形中画一个半圆。
但在我的代码中,圆圈超出了黑色背景上的白色矩形,如下所示
我应该对代码进行哪些更改才能获得像第一张图片一样的结果?
我的代码:-
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;
}
}
Run Code Online (Sandbox Code Playgroud)
看起来你的圆圈是在你想要限制绘画的区域之外绘制的。
如果您只想在画布的指定部分进行绘画,则称为“裁剪”。
添加剪辑:
canvas.clipRect(Rect.fromLTWH(0, 0, size.width, size.height));
canvas.drawCircle(center1, 100, paint);
Run Code Online (Sandbox Code Playgroud)
这样你的圆就不会被画到给定的尺寸之外。
| 归档时间: |
|
| 查看次数: |
1427 次 |
| 最近记录: |