Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
F
flutter_clx_base
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
openSourceLibrary
flutter_clx_base
Commits
fd5d790a
提交
fd5d790a
authored
12月 26, 2022
作者:
张国庆
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
增加缓存方法,加载网络图不使用 任何装饰圆角
上级
0866e6be
显示空白字符变更
内嵌
并排
正在显示
2 个修改的文件
包含
39 行增加
和
5 行删除
+39
-5
main.dart
example/lib/main.dart
+1
-1
image_widget.dart
lib/widget/image_widget.dart
+38
-4
没有找到文件。
example/lib/main.dart
浏览文件 @
fd5d790a
...
...
@@ -30,7 +30,7 @@ class _MyAppState extends State<MyApp> {
border:
Border
.
all
(
color:
Colors
.
grey
,
width:
0.5
),
),
child:
ImageWidget
.
loadNetImage
(
"https://s2.loli.net/2022/08/16/8JNPIXnV4qF2ZhR.jpg
1
"
,
"https://s2.loli.net/2022/08/16/8JNPIXnV4qF2ZhR.jpg"
,
placeholder:
ImageWidget
.
loadAssetImage
(
"img"
)),
),
],
...
...
lib/widget/image_widget.dart
浏览文件 @
fd5d790a
...
...
@@ -23,9 +23,7 @@ class ImageWidget {
return
OctoImage
(
image:
CachedNetworkImageProvider
(
url
??
""
),
imageBuilder:
type
==
ImageTransformerType
.
rect
?
MyOctoImageTransformer
.
radiusAvatar
()
:
MyOctoImageTransformer
.
circleAvatar
(),
imageBuilder:
MyOctoImageTransformer
.
getOctoImageBuilder
(
type
),
errorBuilder:
ImageWidget
.
placeholderBuilder
(
errorWidget:
placeholder
),
fit:
fit
,
width:
width
,
...
...
@@ -33,7 +31,7 @@ class ImageWidget {
);
}
/// 加载
网络
图片widget
/// 加载
本地
图片widget
static
Widget
loadAssetImage
(
String
?
image
,
{
double
?
width
,
...
...
@@ -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
({
Widget
?
errorWidget
,
})
{
...
...
@@ -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
{
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论