Пример #1
0
        ImageStreamListener _getListener(ImageLoadingBuilder loadingBuilder = null)
        {
            loadingBuilder = loadingBuilder ?? widget.loadingBuilder;
            _lastException = null;
            _lastStack     = null;
            ImageChunkListener onChunk = null;

            if (loadingBuilder == null)
            {
                onChunk = _handleImageChunk;
            }

            ImageErrorListener onError = null;

            if (widget.errorBuilder != null)
            {
                onError = error => {
                    setState(() => {
                        _lastException = error;
                        // _lastStack = stackTrace;
                    });
                };
            }

            return(new ImageStreamListener(
                       onImage: _handleImageFrame,
                       onChunk: onChunk,
                       onError: onError
                       ));
        }
Пример #2
0
        public static Image network(
            string src,
            Key key     = null,
            float scale = 1.0f,
            ImageFrameBuilder frameBuilder       = null,
            ImageLoadingBuilder loadingBuilder   = null,
            ImageErrorWidgetBuilder errorBuilder = null,
            float?width              = null,
            float?height             = null,
            Color color              = null,
            BlendMode colorBlendMode = BlendMode.srcIn,
            BoxFit?fit = null,
            AlignmentGeometry alignment          = null,
            ImageRepeat repeat                   = ImageRepeat.noRepeat,
            Rect centerSlice                     = null,
            bool gaplessPlayback                 = false,
            bool matchTextDirection              = false,
            FilterQuality filterQuality          = FilterQuality.low,
            IDictionary <string, string> headers = null,
            int?cacheWidth  = null,
            int?cacheHeight = null
            )
        {
            var image = ResizeImage.resizeIfNeeded(cacheWidth: cacheWidth, cacheHeight: cacheHeight,
                                                   new NetworkImage(url: src, scale: scale, headers: headers));

            return(new Image(
                       key: key,
                       image: image,
                       frameBuilder: frameBuilder,
                       loadingBuilder: loadingBuilder,
                       errorBuilder: errorBuilder,
                       width: width,
                       height: height,
                       color: color,
                       colorBlendMode: colorBlendMode,
                       fit: fit,
                       alignment: alignment,
                       repeat: repeat,
                       centerSlice: centerSlice,
                       matchTextDirection: matchTextDirection,
                       gaplessPlayback: gaplessPlayback,
                       filterQuality: filterQuality
                       ));
        }
Пример #3
0
 public Image(
     Key key                              = null,
     ImageProvider image                  = null,
     ImageFrameBuilder frameBuilder       = null,
     ImageLoadingBuilder loadingBuilder   = null,
     ImageErrorWidgetBuilder errorBuilder = null,
     float?width                          = null,
     float?height                         = null,
     Color color                          = null,
     BlendMode colorBlendMode             = BlendMode.srcIn,
     BoxFit?fit                           = null,
     AlignmentGeometry alignment          = null,
     ImageRepeat repeat                   = ImageRepeat.noRepeat,
     Rect centerSlice                     = null,
     bool matchTextDirection              = false,
     bool gaplessPlayback                 = false,
     FilterQuality filterQuality          = FilterQuality.low
     ) : base(key: key)
 {
     D.assert(image != null);
     this.image              = image;
     this.frameBuilder       = frameBuilder;
     this.loadingBuilder     = loadingBuilder;
     this.errorBuilder       = errorBuilder;
     this.width              = width;
     this.height             = height;
     this.color              = color;
     this.colorBlendMode     = colorBlendMode;
     this.fit                = fit;
     this.alignment          = alignment ?? Alignment.center;
     this.repeat             = repeat;
     this.centerSlice        = centerSlice;
     this.gaplessPlayback    = gaplessPlayback;
     this.filterQuality      = filterQuality;
     this.matchTextDirection = matchTextDirection;
 }