【发布时间】:2020-06-01 12:06:29
【问题描述】:
我正在尝试在容器内的图像中制作半圆形,我已经尝试了很多但无法弄清楚如何制作这个
现在让我解释一下我到目前为止所做的尝试以及我是如何得到结果的
我曾尝试使用 custompainter 类,但得到的结果如下:
enum CircleAlignment {
topLeft,
topRight,
bottomLeft,
bottomRight,
}
class QuarterCirclePainter extends CustomPainter {
final CircleAlignment circleAlignment;
final Color color;
const QuarterCirclePainter({this.circleAlignment, this.color});
@override
void paint(Canvas canvas, Size size) {
final radius = math.min(size.height, size.width-80);
final offset = circleAlignment == CircleAlignment.topLeft
? Offset(.0, .0)
: circleAlignment == CircleAlignment.topRight
? Offset(size.width, 5)
: circleAlignment == CircleAlignment.bottomLeft
? Offset(.0, size.height+10)
: Offset(size.width, size.height);
canvas.drawCircle(offset, radius, Paint()..color = color);
}
@override
bool shouldRepaint(QuarterCirclePainter oldDelegate) {
return color == oldDelegate.color &&
circleAlignment == oldDelegate.circleAlignment;
}
}
但我得到这样的结果:
有人知道怎么做吗?
【问题讨论】: