loadImage static method
Widget
loadImage(
- ImageSource source,
- ImageStyle style, {
- Widget? placeholder,
- Widget? errorWidget,
- VoidCallback? onTap,
加载图片并返回合适的Widget
Implementation
static Widget loadImage(ImageSource source, ImageStyle style,
{Widget? placeholder, Widget? errorWidget, VoidCallback? onTap}) {
// 构建基础容器
Widget imageWidget;
switch (source.type) {
case ImageSourceType.network:
imageWidget = _loadNetworkImage(
source.data as String, source.format, style,
placeholder: placeholder, errorWidget: errorWidget);
break;
case ImageSourceType.asset:
imageWidget = _loadAssetImage(
source.data as String, source.format, style,
placeholder: placeholder, errorWidget: errorWidget);
break;
case ImageSourceType.file:
imageWidget = _loadFileImage(
source.data as String, source.format, style,
placeholder: placeholder, errorWidget: errorWidget);
break;
case ImageSourceType.memory:
imageWidget = _loadMemoryImage(
source.data as Uint8List, source.format, style,
placeholder: placeholder, errorWidget: errorWidget);
break;
case ImageSourceType.base64:
try {
final bytes = ImageTypeDetector.base64ToBytes(source.data as String);
imageWidget = _loadMemoryImage(bytes, source.format, style,
placeholder: placeholder, errorWidget: errorWidget);
} catch (e) {
imageWidget = errorWidget ?? _defaultErrorWidget(style);
}
break;
default:
imageWidget = errorWidget ?? _defaultErrorWidget(style);
}
// 应用样式包装
return _wrapWithStyle(imageWidget, style, onTap: onTap);
}