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': encodeAlignment(value.begin as Alignment?),
'colors': _encodeList<String?>(
value.colors,
(value) => encodeColor(value),
),
'end': encodeAlignment(value.end as Alignment?),
'stops': value.stops,
'tileMode': encodeTileMode(value.tileMode),
'transform': encodeGradientTransform(value.transform),
'type': 'linear',
};
} else if (value is RadialGradient) {
result = {
'center': encodeAlignment(value.center as Alignment?),
'colors': _encodeList<String?>(
value.colors,
(value) => encodeColor(value),
),
'focal': encodeAlignment(value.focal as Alignment?),
'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': encodeAlignment(value.center as Alignment?),
'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 result;
}