feat: custom image borderRadius

This commit is contained in:
guozhigq
2024-10-19 15:46:01 +08:00
parent e4679143c5
commit b4ccd2f4bf

View File

@ -20,6 +20,7 @@ class NetworkImgLayer extends StatelessWidget {
// 图片质量 默认1% // 图片质量 默认1%
this.quality, this.quality,
this.origAspectRatio, this.origAspectRatio,
this.radius,
}); });
final String? src; final String? src;
@ -30,6 +31,18 @@ class NetworkImgLayer extends StatelessWidget {
final Duration? fadeInDuration; final Duration? fadeInDuration;
final int? quality; final int? quality;
final double? origAspectRatio; final double? origAspectRatio;
final double? radius;
BorderRadius getBorderRadius(String? type, double? radius) {
return BorderRadius.circular(
radius ??
(type == 'avatar'
? 50
: type == 'emote'
? 0
: StyleString.imgRadius.x),
);
}
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
@ -72,13 +85,7 @@ class NetworkImgLayer extends StatelessWidget {
return src != '' && src != null return src != '' && src != null
? ClipRRect( ? ClipRRect(
clipBehavior: Clip.antiAlias, clipBehavior: Clip.antiAlias,
borderRadius: BorderRadius.circular( borderRadius: getBorderRadius(type, radius),
type == 'avatar'
? 50
: type == 'emote'
? 0
: StyleString.imgRadius.x,
),
child: CachedNetworkImage( child: CachedNetworkImage(
imageUrl: imageUrl, imageUrl: imageUrl,
width: width, width: width,
@ -107,11 +114,7 @@ class NetworkImgLayer extends StatelessWidget {
clipBehavior: Clip.antiAlias, clipBehavior: Clip.antiAlias,
decoration: BoxDecoration( decoration: BoxDecoration(
color: Theme.of(context).colorScheme.onInverseSurface.withOpacity(0.4), color: Theme.of(context).colorScheme.onInverseSurface.withOpacity(0.4),
borderRadius: BorderRadius.circular(type == 'avatar' borderRadius: getBorderRadius(type, radius),
? 50
: type == 'emote'
? 0
: StyleString.imgRadius.x),
), ),
child: type == 'bg' child: type == 'bg'
? const SizedBox() ? const SizedBox()