encodeGradient static method

Map<String, dynamic>? encodeGradient(
  1. Gradient? value
)

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:

LinearGradient

{
  "begin": <Alignment>,
  "colors": <Color[]>,
  "end": <Alignment>,
  "stops": <double[]>,
  "tileMode": <TileMode>,
  "transform": <GradientTransform>
  "type": "linear",
}

RadialGradient

{
  "center": <Alignment>,
  "colors": <Color[]>,
  "focal": <Alignment>,
  "focalRadius": <double>,
  "radius": <double>,
  "stops": <double[]>,
  "tileMode": <TileMode>,
  "transform": <GradientTransform>
  "type": "radial",
}

SweepGradient

{
  "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;
}