flutter_advanced_networkimage_2

Last updated:

0 purchases

flutter_advanced_networkimage_2 Image
flutter_advanced_networkimage_2 Images
Add to Cart

Description:

flutter advanced networkimage 2

Flutter Advanced Network Image Provider 2 #
fork from https://pub.dev/packages/flutter_advanced_networkimage
migrate to null safety

An advanced image provider provides caching and retrying for flutter app.
Now with zoomable widget and transition to image widget.
Getting Started #
Installation #
Add this to your pubspec.yaml (or create it):
dependencies:
flutter_advanced_networkimage: any
copied to clipboard
Then run the flutter tooling:
flutter packages get
copied to clipboard
Example #
// using image provider
Image(
image: AdvancedNetworkImage(
url,
header: header,
useDiskCache: true,
cacheRule: CacheRule(maxAge: const Duration(days: 7)),
),
fit: BoxFit.cover,
)
// work with precacheImage
precacheImage(
AdvancedNetworkImage(
url,
header: header,
useDiskCache: true,
cacheRule: CacheRule(maxAge: const Duration(days: 7)),
),
context,
);

// or svg provider (flutter_svg)
SvgPicture(
AdvancedNetworkSvg(url, SvgPicture.svgByteDecoder, useDiskCache: true),
)
copied to clipboard
// get the disk cache folder size
int cacheSize = await DiskCache().cacheSize();
copied to clipboard
// clean the disk cache
bool isSucceed = await DiskCache().clear();
copied to clipboard
// using zooming widget & transitiontoimage widget
ZoomableWidget(
minScale: 0.3,
maxScale: 2.0,
// default factor is 1.0, use 0.0 to disable boundary
panLimit: 0.8,
child: Container(
child: TransitionToImage(
image: AdvancedNetworkImage(url, timeoutDuration: Duration(minutes: 1)),
// This is the default placeholder widget at loading status,
// you can write your own widget with CustomPainter.
placeholder: CircularProgressIndicator(),
// This is default duration
duration: Duration(milliseconds: 300),
),
),
)
copied to clipboard
// Reload feature included
TransitionToImage(
image: AdvancedNetworkImage(url,
loadedCallback: () {
print('It works!');
},
loadFailedCallback: () {
print('Oh, no!');
},
loadingProgress: (double progress) {
print('Now Loading: $progress');
},
),
loadingWidgetBuilder: (_, double progress, __) => Text(progress.toString()),
fit: BoxFit.contain,
placeholder: const Icon(Icons.refresh),
width: 400.0,
height: 300.0,
enableRefresh: true,
);
copied to clipboard
// Scale the widget size. (Origin point was fixed to screen's center)
ZoomableWidget(
panLimit: 1.0,
maxScale: 2.0,
minScale: 0.5,
singleFingerPan: true,
multiFingersPan: false,
enableRotate: true,
child: Image(
image: AssetImage('graphics/background.png'),
),
zoomSteps: 3,
),
copied to clipboard
Details in example/ folder.

If you have any problem or question, feel free to file issues.

License:

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Customer Reviews

There are no reviews.