提交 fd5d790a authored 作者: 张国庆's avatar 张国庆

增加缓存方法,加载网络图不使用 任何装饰圆角
上级 0866e6be
...@@ -30,7 +30,7 @@ class _MyAppState extends State<MyApp> { ...@@ -30,7 +30,7 @@ class _MyAppState extends State<MyApp> {
border: Border.all(color: Colors.grey, width: 0.5), border: Border.all(color: Colors.grey, width: 0.5),
), ),
child: ImageWidget.loadNetImage( child: ImageWidget.loadNetImage(
"https://s2.loli.net/2022/08/16/8JNPIXnV4qF2ZhR.jpg1", "https://s2.loli.net/2022/08/16/8JNPIXnV4qF2ZhR.jpg",
placeholder: ImageWidget.loadAssetImage("img")), placeholder: ImageWidget.loadAssetImage("img")),
), ),
], ],
......
...@@ -23,9 +23,7 @@ class ImageWidget { ...@@ -23,9 +23,7 @@ class ImageWidget {
return OctoImage( return OctoImage(
image: CachedNetworkImageProvider(url ?? ""), image: CachedNetworkImageProvider(url ?? ""),
imageBuilder: type == ImageTransformerType.rect imageBuilder: MyOctoImageTransformer.getOctoImageBuilder(type),
? MyOctoImageTransformer.radiusAvatar()
: MyOctoImageTransformer.circleAvatar(),
errorBuilder: ImageWidget.placeholderBuilder(errorWidget: placeholder), errorBuilder: ImageWidget.placeholderBuilder(errorWidget: placeholder),
fit: fit, fit: fit,
width: width, width: width,
...@@ -33,7 +31,7 @@ class ImageWidget { ...@@ -33,7 +31,7 @@ class ImageWidget {
); );
} }
/// 加载网络图片widget /// 加载本地图片widget
static Widget loadAssetImage( static Widget loadAssetImage(
String? image, { String? image, {
double? width, double? width,
...@@ -58,6 +56,29 @@ class ImageWidget { ...@@ -58,6 +56,29 @@ class ImageWidget {
); );
} }
//缓存 本地图片
static void cacheAssetImage(
context,
String image, {
String format = 'png',
}) {
precacheImage(
AssetImage(ImageUtils.getImgPath(image, format: format)), context);
}
//缓存 网络图片
static void cacheNetImage(
context,
String url, {
String? domain,
}) {
var domainUrl = domain ?? ImageWidget.domain;
if (url.isNotEmpty && !url.startsWith("http")) {
url = domainUrl + url;
}
precacheImage(CachedNetworkImageProvider(url), context);
}
static OctoErrorBuilder placeholderBuilder({ static OctoErrorBuilder placeholderBuilder({
Widget? errorWidget, Widget? errorWidget,
}) { }) {
...@@ -97,6 +118,19 @@ class MyOctoImageTransformer { ...@@ -97,6 +118,19 @@ class MyOctoImageTransformer {
), ),
); );
} }
// 根据type返回 OctoImageBuilder
static OctoImageBuilder getOctoImageBuilder(ImageTransformerType type) {
switch (type) {
case ImageTransformerType.rect:
return radiusAvatar();
case ImageTransformerType.circle:
return circleAvatar();
default:
return (context, child) => child;
}
}
} }
enum ImageTransformerType { enum ImageTransformerType {
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论