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': 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);
}