-
Notifications
You must be signed in to change notification settings - Fork 29.7k
Closed
Labels
d: api docsIssues with https://api.flutter.dev/Issues with https://api.flutter.dev/frameworkflutter/packages/flutter repository. See also f: labels.flutter/packages/flutter repository. See also f: labels.
Milestone
Description
I want to create something like this.

I use shader created from SweepGradient. Here's my code.
import 'package:flutter/material.dart';
import 'dart:math';
class Arc extends CustomPainter {
double doubleToAngle(double angle) => angle * pi / 180.0;
void drawArcWithRadius(
Canvas canvas, Offset center, double radius, double angle, Paint paint) {
canvas.drawArc(Rect.fromCircle(center: center, radius: radius),
doubleToAngle(-90.0), doubleToAngle(angle), false, paint);
}
@override
void paint(Canvas canvas, Size size) {
final Offset center = Offset(size.width / 2.0, size.height / 2.0);
final double radius = size.width / 3.0;
double angle = 210.0;
Paint paint = Paint()
..strokeCap = StrokeCap.round
..strokeWidth = 40.0
..style = PaintingStyle.stroke
..color = Colors.red
..shader = new SweepGradient(colors: [
Color(0xFFB4EC51),
Color(0xFF3023AE),
], startAngle: 0.0, endAngle: doubleToAngle(angle))
.createShader(Rect.fromCircle(center: center, radius: radius));
drawArcWithRadius(canvas, center, radius, angle, paint);
}
@override
bool shouldRepaint(CustomPainter oldDelegate) {
return true;
}
}But it ends up something like this.

It seems like sweepAngle doesn't have any effect.
maryx, spkersten and zs-dima
Metadata
Metadata
Assignees
Labels
d: api docsIssues with https://api.flutter.dev/Issues with https://api.flutter.dev/frameworkflutter/packages/flutter repository. See also f: labels.flutter/packages/flutter repository. See also f: labels.