Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
DiDi
DoraemonKit
提交
bad3fe3c
D
DoraemonKit
项目概览
DiDi
/
DoraemonKit
9 个月 前同步成功
通知
166
Star
19623
Fork
3062
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
DoraemonKit
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
bad3fe3c
编写于
9月 21, 2021
作者:
囧jt
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
modify:
[Android]-新增coil的大图检测功能
上级
2ac1116e
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
23 addition
and
10 deletion
+23
-10
Android/app/src/main/java/com/didichuxing/doraemondemo/MainDebugActivityOkhttpV3.kt
...com/didichuxing/doraemondemo/MainDebugActivityOkhttpV3.kt
+7
-2
Android/dokit/src/main/java/com/didichuxing/doraemonkit/aop/bigimg/coil/CoilHook.java
...com/didichuxing/doraemonkit/aop/bigimg/coil/CoilHook.java
+16
-8
未找到文件。
Android/app/src/main/java/com/didichuxing/doraemondemo/MainDebugActivityOkhttpV3.kt
浏览文件 @
bad3fe3c
...
...
@@ -24,6 +24,7 @@ import androidx.recyclerview.widget.LinearLayoutManager
import
androidx.recyclerview.widget.RecyclerView
import
coil.imageLoader
import
coil.request.CachePolicy
import
coil.transform.CircleCropTransformation
import
com.amap.api.location.AMapLocationListener
import
com.blankj.utilcode.util.ConvertUtils
import
com.blankj.utilcode.util.ThreadUtils
...
...
@@ -401,7 +402,8 @@ class MainDebugActivityOkhttpV3 : BaseActivity(), View.OnClickListener,
"https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fyouimg1.c-ctrip.com%2Ftarget%2Ftg%2F035%2F063%2F726%2F3ea4031f045945e1843ae5156749d64c.jpg&refer=http%3A%2F%2Fyouimg1.c-ctrip.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=jpeg?sec=1621652979&t=7150aaa2071d512cf2f6b556e126dd66"
val
imageLoaderImageUrl
=
"https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fyouimg1.c-ctrip.com%2Ftarget%2Ftg%2F004%2F531%2F381%2F4339f96900344574a0c8ca272a7b8f27.jpg&refer=http%3A%2F%2Fyouimg1.c-ctrip.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=jpeg?sec=1621652979&t=b7e83ecc987c64cc31079469d292eb56"
val
coilImageUrl
=
"https://cdn.nlark.com/yuque/0/2020/png/252337/1587091196083-assets/web-upload/62122ab5-986b-4662-be88-d3007a5e31c5.png"
val
coilImageUrl
=
"https://cdn.nlark.com/yuque/0/2020/png/252337/1587091196083-assets/web-upload/62122ab5-986b-4662-be88-d3007a5e31c5.png"
Picasso
.
get
().
load
(
picassoImgUrl
)
.
memoryPolicy
(
MemoryPolicy
.
NO_CACHE
)
.
placeholder
(
R
.
mipmap
.
cat
)
...
...
@@ -416,21 +418,24 @@ class MainDebugActivityOkhttpV3 : BaseActivity(), View.OnClickListener,
.
skipMemoryCache
(
true
)
.
transform
(
CircleCrop
())
.
into
((
findViewById
<
View
>(
R
.
id
.
iv_glide
)
as
ImageView
))
//coil
findViewById
<
ImageView
>(
R
.
id
.
iv_coil
).
apply
{
val
request
=
coil
.
request
.
ImageRequest
.
Builder
(
this
.
context
)
.
memoryCachePolicy
(
CachePolicy
.
DISABLED
)
.
transformations
(
CircleCropTransformation
())
.
diskCachePolicy
(
CachePolicy
.
DISABLED
)
.
data
(
coilImageUrl
)
.
target
(
this
)
.
build
()
imageLoader
.
enqueue
(
request
)
}
//imageLoader
val
imageLoader
=
ImageLoader
.
getInstance
()
imageLoader
.
displayImage
(
imageLoaderImageUrl
,
findViewById
<
View
>(
R
.
id
.
iv_imageloader
)
as
ImageView
)
//fresco
val
frescoImageView
=
findViewById
<
SimpleDraweeView
>(
R
.
id
.
iv_fresco
)
frescoImageView
.
setImageURI
(
Uri
.
parse
(
frescoImageUrl
))
val
imagePipeline
=
Fresco
.
getImagePipeline
()
...
...
Android/dokit/src/main/java/com/didichuxing/doraemonkit/aop/bigimg/coil/CoilHook.java
浏览文件 @
bad3fe3c
...
...
@@ -6,9 +6,11 @@ import com.didichuxing.doraemonkit.util.ReflectUtils;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.function.Consumer
;
import
coil.request.ImageRequest
;
import
coil.transform.Transformation
;
import
okhttp3.Interceptor
;
/**
* ================================================
...
...
@@ -20,9 +22,9 @@ import coil.transform.Transformation;
* ================================================
*/
public
class
CoilHook
{
/**
* hook transformations
*
*/
public
static
void
proxy
(
Object
request
)
{
...
...
@@ -30,15 +32,11 @@ public class CoilHook {
try
{
if
(
request
instanceof
ImageRequest
)
{
ImageRequest
requestObj
=
(
ImageRequest
)
request
;
List
<
Transformation
>
transformations
=
requestObj
.
getTransformations
();
if
(
transformations
.
isEmpty
())
{
transformations
=
new
ArrayList
<>();
transformations
.
add
(
new
DokitCoilTransformation
(
requestObj
.
getData
()));
}
else
{
transformations
.
clear
();
List
<
Transformation
>
transformations
=
new
ArrayList
<>(
requestObj
.
getTransformations
());
if
(!
hasDoKitTransformation
(
transformations
))
{
transformations
.
add
(
new
DokitCoilTransformation
(
requestObj
.
getData
()));
ReflectUtils
.
reflect
(
request
).
field
(
"transformations"
,
transformations
);
}
ReflectUtils
.
reflect
(
request
).
field
(
"transformations"
,
transformations
);
}
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
...
...
@@ -46,4 +44,14 @@ public class CoilHook {
}
private
static
boolean
hasDoKitTransformation
(
List
<
Transformation
>
transformations
)
{
for
(
Transformation
transformation
:
transformations
)
{
if
(
transformation
instanceof
DokitCoilTransformation
)
{
return
true
;
}
}
return
false
;
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录