setPaints method
Generate paints for caching
Implementation
void setPaints(Offset center, double width) {
if (center == _center || width == _width) {
if (_paints != null) {
return;
}
}
_center = center;
_width = width;
_paints = [];
for (var i = 0; i < _colors.length; i++) {
final initialCirclePaint = Paint()..color = _colors[i].first;
final finalCirclePaint = Paint()..color = _colors[i].last;
final shader = SweepGradient(
colors: _colors[i],
tileMode: TileMode.repeated,
startAngle: degreeToRadians(270),
endAngle: degreeToRadians(270 + 360.0),
).createShader(
Rect.fromCircle(
center: center,
radius: 0,
),
);
final arcPaint = Paint()
..strokeCap = StrokeCap.round
..style = PaintingStyle.stroke
..strokeWidth = width
..shader = shader;
_paints!.add(RingPaints(
initialCirclePaint: initialCirclePaint,
arcPaint: arcPaint,
finalCirclePaint: finalCirclePaint,
));
}
}