app-starlock/lib/tools/customNetworkImage.dart

53 lines
1.5 KiB
Dart
Raw Normal View History

import 'package:cached_network_image/cached_network_image.dart';
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
/*
*
* */
class CustomNetworkImage extends StatelessWidget {
2024-08-19 15:24:14 +08:00
const CustomNetworkImage(
{required this.url, required this.defaultUrl, required this.width, required this.height, Key? key,
this.boxFit = BoxFit.cover})
: super(key: key);
final String url;
2024-04-10 13:36:00 +08:00
final String defaultUrl;
final double width;
final double height;
final BoxFit boxFit;
2024-04-30 13:41:34 +08:00
@override
Widget build(BuildContext context) {
2024-04-30 13:41:34 +08:00
return url.isNotEmpty
? CachedNetworkImage(
width: width,
height: height,
fit: boxFit,
imageUrl: url,
2024-08-19 15:24:14 +08:00
imageBuilder: (BuildContext context, ImageProvider<Object> imageProvider) => Container(
2024-04-30 13:41:34 +08:00
decoration: BoxDecoration(
image: DecorationImage(
image: imageProvider,
fit: boxFit,
colorFilter: const ColorFilter.mode(
Colors.transparent, BlendMode.colorBurn)),
),
),
2024-08-19 15:24:14 +08:00
errorWidget: (BuildContext context, String url, Object error) => Image.asset(
2024-04-30 13:41:34 +08:00
defaultUrl,
width: width,
height: height,
fit: BoxFit.fill,
),
)
: Image.asset(
defaultUrl,
width: width,
height: height,
fit: BoxFit.fill,
);
}
}