encodeGradient static method
Encodes the given value
to the String representation. This only
supports the following Gradient subclasses:
The emitted JSON will depend on the Gradient type and are each described below:
{
"begin": "<Alignment>",
"colors": "<Color[]>",
"end": "<Alignment>",
"stops": "<double[]>",
"tileMode": "<TileMode>",
"transform": "<GradientTransform>"
"type": "linear",
}
{
"center": "<Alignment>",
"colors": "<Color[]>",
"focal": "<Alignment>",
"focalRadius": "<double>",
"radius": "<double>",
"stops": "<double[]>",
"tileMode": "<TileMode>",
"transform": "<GradientTransform>"
"type": "radial",
}
{
"center": "<Alignment>",
"colors": "<Color[]>",
"endAngle": "<double>",
"startAngle": "<double>",
"stops": "<double[]>",
"tileMode": "<TileMode>",
"transform": "<GradientTransform>"
"type": "sweep",
}
See also:
Implementation
static Map<String, dynamic>? encodeGradient(Gradient? value) {
assert(value == null ||
value is LinearGradient ||
value is RadialGradient ||
value is SweepGradient);
Map<String, dynamic>? result;
if (value != null) {
if (value is LinearGradient) {
result = {
'begin': encodeAlignmentGeometry(value.begin),
'colors': _encodeList<String?>(
value.colors,
(value) => encodeColor(value),
),
'end': encodeAlignmentGeometry(value.end),
'stops': value.stops,
'tileMode': encodeTileMode(value.tileMode),
'transform': encodeGradientTransform(value.transform),
'type': 'linear',
};
} else if (value is RadialGradient) {
result = {
'center': encodeAlignmentGeometry(value.center),
'colors': _encodeList<String?>(
value.colors,
(value) => encodeColor(value),
),
'focal': encodeAlignmentGeometry(value.focal),
'focalRadius': value.focalRadius,
'radius': value.radius,
'stops': value.stops,
'tileMode': encodeTileMode(value.tileMode),
'transform': encodeGradientTransform(value.transform),
'type': 'radial',
};
} else if (value is SweepGradient) {
result = {
'center': encodeAlignmentGeometry(value.center),
'colors': _encodeList<String?>(
value.colors,
(value) => encodeColor(value),
),
'endAngle': value.endAngle,
'startAngle': value.startAngle,
'stops': value.stops,
'tileMode': encodeTileMode(value.tileMode),
'transform': encodeGradientTransform(value.transform),
'type': 'sweep',
};
}
}
return _stripDynamicNull(result);
}