imagePreviewImage function
Widget
imagePreviewImage(
- String imagePath, {
- required String fallbackTitle,
- BoxFit fit = BoxFit.contain,
- int? cacheWidth,
- int? cacheHeight,
- Color gradientStart = const Color(0xFFE8EDF5),
- Color gradientEnd = const Color(0xFFDCE4F0),
- Color accentColor = const Color(0xFF4F5D9A),
- Color iconColor = const Color(0xFF94A3B8),
})
Implementation
Widget imagePreviewImage(
String imagePath, {
required String fallbackTitle,
BoxFit fit = BoxFit.contain,
int? cacheWidth,
int? cacheHeight,
Color gradientStart = const Color(0xFFE8EDF5),
Color gradientEnd = const Color(0xFFDCE4F0),
Color accentColor = const Color(0xFF4F5D9A),
Color iconColor = const Color(0xFF94A3B8),
}) {
final trimmed = imagePath.trim();
if (trimmed.isEmpty) {
return Builder(
builder: (context) => imagePreviewPlaceholder(
context,
fallbackTitle,
gradientStart: gradientStart,
gradientEnd: gradientEnd,
accentColor: accentColor,
iconColor: iconColor,
),
);
}
final image = trimmed.startsWith('http://') || trimmed.startsWith('https://')
? Image.network(
trimmed,
fit: fit,
width: double.infinity,
height: double.infinity,
alignment: Alignment.center,
filterQuality: FilterQuality.medium,
cacheWidth: cacheWidth,
cacheHeight: cacheHeight,
gaplessPlayback: true,
errorBuilder: (context, _, _) => imagePreviewPlaceholder(
context,
fallbackTitle,
gradientStart: gradientStart,
gradientEnd: gradientEnd,
accentColor: accentColor,
iconColor: iconColor,
),
)
: Image.asset(
trimmed,
fit: fit,
width: double.infinity,
height: double.infinity,
alignment: Alignment.center,
filterQuality: FilterQuality.medium,
cacheWidth: cacheWidth,
cacheHeight: cacheHeight,
gaplessPlayback: true,
errorBuilder: (context, _, _) => imagePreviewPlaceholder(
context,
fallbackTitle,
gradientStart: gradientStart,
gradientEnd: gradientEnd,
accentColor: accentColor,
iconColor: iconColor,
),
);
return image;
}