ResponsiveImage.memory constructor
- Uint8List bytes, {
- Key? key,
- double scale = 1.0,
- dynamic frameBuilder,
- dynamic errorBuilder,
- dynamic semanticLabel,
- dynamic excludeFromSemantics = false,
- dynamic width,
- dynamic height,
- dynamic color,
- dynamic opacity,
- dynamic colorBlendMode,
- dynamic fit,
- dynamic alignment = Alignment.center,
- dynamic repeat = ImageRepeat.noRepeat,
- dynamic centerSlice,
- dynamic matchTextDirection = false,
- dynamic gaplessPlayback = false,
- dynamic isAntiAlias = false,
- dynamic filterQuality = FilterQuality.low,
- int? cacheWidth,
- int? cacheHeight,
- double scaleWatch = 0.1,
- double scaleSmallPhone = 1.0,
- double scaleMediumPhone = 1.0,
- double scaleLargePhone = 1.5,
- double scaleSmallTablet = 1.8,
- double scaleMediumTablet = 2.0,
- double scaleLargeTablet = 2.5,
- double scaleMediumDesktop = 3.0,
- double scaleLargeDesktop = 3.6,
- double scaleTelevision = 4.2,
Creates a widget that displays an ImageStream obtained from a Uint8List.
The bytes argument specifies encoded image bytes, which can be encoded
in any of the following supported image formats:
The scale argument specifies the linear scale factor for drawing this
image at its intended size and applies to both the width and the height.
For example, if this is 2.0, it means that there are four image pixels for
every one logical pixel, and the image's actual width and height (as given
by the dart:ui.Image.width and dart:ui.Image.height properties) are
double the height and width that should be used when painting the image
(e.g. in the arguments given to Canvas.drawImage).
The bytes, scale, and repeat arguments must not be null.
This only accepts compressed image formats (e.g. PNG). Uncompressed formats like rawRgba (the default format of dart:ui.Image.toByteData) will lead to exceptions.
Either the width and height arguments should be specified, or the
widget should be placed in a context that sets tight layout constraints.
Otherwise, the image dimensions will change as the image is loaded, which
will result in ugly layout changes.
Use filterQuality to specify the rendering quality of the image.
If excludeFromSemantics is true, then semanticLabel will be ignored.
If cacheWidth or cacheHeight are provided, it indicates to the
engine that the image must be decoded at the specified size. The image
will be rendered to the constraints of the layout or width and height
regardless of these parameters. These parameters are primarily intended
to reduce the memory usage of ImageCache.
Implementation
ResponsiveImage.memory(
Uint8List bytes, {
Key? key,
double scale = 1.0,
frameBuilder,
errorBuilder,
semanticLabel,
excludeFromSemantics = false,
width,
height,
color,
opacity,
colorBlendMode,
fit,
alignment = Alignment.center,
repeat = ImageRepeat.noRepeat,
centerSlice,
matchTextDirection = false,
gaplessPlayback = false,
isAntiAlias = false,
filterQuality = FilterQuality.low,
int? cacheWidth,
int? cacheHeight,
double scaleWatch = 0.1,
double scaleSmallPhone = 1.0,
double scaleMediumPhone = 1.0,
double scaleLargePhone = 1.5,
double scaleSmallTablet = 1.8,
double scaleMediumTablet = 2.0,
double scaleLargeTablet = 2.5,
double scaleMediumDesktop = 3.0,
double scaleLargeDesktop = 3.6,
double scaleTelevision = 4.2,
}) : super(
scaleWatch: scaleWatch,
scaleSmallPhone: scaleSmallPhone,
scaleMediumPhone: scaleMediumPhone,
scaleLargePhone: scaleLargePhone,
scaleSmallTablet: scaleSmallTablet,
scaleMediumTablet: scaleMediumTablet,
scaleLargeTablet: scaleLargeTablet,
scaleMediumDesktop: scaleMediumDesktop,
scaleLargeDesktop: scaleLargeDesktop,
scaleTelevision: scaleTelevision
) {
set('key', key)
.set('imageType', _ImageType.memoryImage)
.set('bytes', bytes)
.set('scale', scale)
.set('frameBuilder', frameBuilder)
.set('errorBuilder', errorBuilder)
.set('semanticLabel', semanticLabel)
.set('excludeFromSemantics', excludeFromSemantics)
.set('width', width)
.set('height', height)
.set('color', color)
.set('opacity', opacity)
.set('colorBlendMode', colorBlendMode)
.set('fit', fit)
.set('alignment', alignment)
.set('repeat', repeat)
.set('centerSlice', centerSlice)
.set('matchTextDirection', matchTextDirection)
.set('gaplessPlayback', gaplessPlayback)
.set('isAntiAlias', isAntiAlias)
.set('filterQuality', filterQuality)
.set('cacheWidth', cacheWidth)
.set('cacheHeight', cacheHeight);
}