提交 bad3fe3c 编写于 作者: 囧jt's avatar 囧jt

modify:

[Android]-新增coil的大图检测功能
上级 2ac1116e
......@@ -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()
......
......@@ -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.
先完成此消息的编辑!
想要评论请 注册