当前位置: 首页 > news >正文

Android Glide配置AppGlideModule定制化线程池,Kotlin(1)

Android Glide配置AppGlideModule定制化线程池,Kotlin(1)

 

 

plugins {id 'org.jetbrains.kotlin.kapt'
}implementation 'com.github.bumptech.glide:glide:4.16.0'kapt 'com.github.bumptech.glide:compiler:4.16.0'

 

 

import android.content.Context
import android.util.Log
import com.bumptech.glide.Glide
import com.bumptech.glide.GlideBuilder
import com.bumptech.glide.Registry
import com.bumptech.glide.annotation.GlideModule
import com.bumptech.glide.load.engine.executor.GlideExecutor
import com.bumptech.glide.module.AppGlideModule@GlideModule
class MyGlideModule : AppGlideModule() {override fun applyOptions(context: Context, builder: GlideBuilder) {super.applyOptions(context, builder)builder.setLogLevel(Log.DEBUG)val mSourceExecutor = GlideExecutor.newSourceBuilder().setThreadCount(4).setThreadTimeoutMillis(1000) //线程读写超时时间。.setName("fly-SourceExecutor").build()val mDiskCacheBuilder = GlideExecutor.newDiskCacheBuilder().setThreadCount(4).setThreadTimeoutMillis(1000) //线程读写超时时间。.setName("fly-DiskCacheBuilder").build()builder.setSourceExecutor(mSourceExecutor)builder.setDiskCacheExecutor(mDiskCacheBuilder)builder.setLogLevel(Log.DEBUG)}override fun registerComponents(context: Context, glide: Glide, registry: Registry) {super.registerComponents(context, glide, registry)}override fun isManifestParsingEnabled(): Boolean {return false}
}

 

 

import android.graphics.Bitmap
import android.os.Bundle
import android.util.Log
import androidx.appcompat.app.AppCompatActivity
import com.bumptech.glide.load.DataSource
import com.bumptech.glide.load.engine.GlideException
import com.bumptech.glide.request.RequestListener
import com.bumptech.glide.request.target.Targetclass MainActivity : AppCompatActivity() {companion object {const val TAG = "fly"}override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)GlideApp.with(this).asBitmap().load(R.mipmap.ic_launcher).override(500, 500).addListener(object : RequestListener<Bitmap> {override fun onLoadFailed(e: GlideException?, model: Any?, target: Target<Bitmap>, isFirstResource: Boolean): Boolean {return false}override fun onResourceReady(resource: Bitmap,model: Any,target: Target<Bitmap>?,dataSource: DataSource,isFirstResource: Boolean): Boolean {Log.d(TAG, "onResourceReady isFirstResource=${isFirstResource}")return false}}).into(myImageView)}
}

 

 

 

Android自定义AppGlideModule,DataFetcher ,ModelLoaderFactory,ModelLoader,Kotlin(1)_android appglidemodule-CSDN博客文章浏览阅读670次。假设实现一个简单的功能,对传入要加载的path路径增加一定的筛选、容错或“重定向”,需要自定义一个模型,基于这个模型,让Glide自动匹配模型展开加载。), //简单时候可以考虑ObjectKey(model.path!!= null!})!_android appglidemodulehttps://blog.csdn.net/zhangphil/article/details/133862536Android Glide自定义AppGlideModule,让Glide在app启动后基于定制化GlideModule加载,kotlin_glide appglidemodule-CSDN博客文章浏览阅读1.3k次。在实际的开发中,虽然Glide解决了快速加载图片的问题,但还有一个问题悬而未决:比如用户的头像,往往用户的头像是从服务器端读出的一个普通矩形图片,但是现在的设计一般要求在APP端的用户头像显示成圆形头像,那么此时虽然Glide可以加载,但加载出来的是一个矩形,如果要Glide_android 毛玻璃圆角。《Android图片加载与缓存开源框架:Android Glide》Android Glide是一个开源的图片加载和缓存处理的第三方框架。_glide appglidemodulehttps://blog.csdn.net/zhangphil/article/details/131592226Android自定义AppGlideModule,DataFetcher ,ModelLoaderFactory,ModelLoader,Kotlin(1)_android appglidemodule-CSDN博客文章浏览阅读670次。假设实现一个简单的功能,对传入要加载的path路径增加一定的筛选、容错或“重定向”,需要自定义一个模型,基于这个模型,让Glide自动匹配模型展开加载。), //简单时候可以考虑ObjectKey(model.path!!= null!})!_android appglidemodulehttps://blog.csdn.net/zhangphil/article/details/133862536

 

相关文章:

  • 网络原理 - HTTP / HTTPS(3)——http响应
  • IPSec VPN
  • Tensorflow2.0笔记 - 自定义Layer和Model实现CIFAR10数据集的训练
  • TCP的十个重要的机制
  • [每周一更]-第92期:Go项目中的限流算法
  • 信创环境ES索引管理脚本:close, delete
  • 优化 Nginx 处理 504 Gateway Timeout 错误
  • 【漏洞复现】WordPress Plugin LearnDash LMS 敏感信息暴漏
  • 即刻体验 | 使用 Flutter 3.19 更高效地开发
  • 【软件工程】详细设计(一)
  • Autodesk AutoCAD 2025 (macOS, Windows) - 自动计算机辅助设计软件
  • 文件操作讲解
  • Golang基础-9
  • 后端前行Vue之路(三):计算属性和监视属性
  • YARN集群 和 MapReduce 原理及应用
  • 2019年如何成为全栈工程师?
  • Druid 在有赞的实践
  • Dubbo 整合 Pinpoint 做分布式服务请求跟踪
  • HTTP--网络协议分层,http历史(二)
  • IDEA常用插件整理
  • JavaScript 基础知识 - 入门篇(一)
  • JS题目及答案整理
  • Mysql数据库的条件查询语句
  • PyCharm搭建GO开发环境(GO语言学习第1课)
  • Traffic-Sign Detection and Classification in the Wild 论文笔记
  • windows-nginx-https-本地配置
  • 高度不固定时垂直居中
  • 构建二叉树进行数值数组的去重及优化
  • 看域名解析域名安全对SEO的影响
  • 类orAPI - 收藏集 - 掘金
  • 如何借助 NoSQL 提高 JPA 应用性能
  • 如何选择开源的机器学习框架?
  • 说说动画卡顿的解决方案
  • 问题之ssh中Host key verification failed的解决
  • 正则表达式
  • 3月27日云栖精选夜读 | 从 “城市大脑”实践,瞭望未来城市源起 ...
  • !!【OpenCV学习】计算两幅图像的重叠区域
  • #NOIP 2014# day.2 T2 寻找道路
  • (HAL库版)freeRTOS移植STMF103
  • (ros//EnvironmentVariables)ros环境变量
  • (力扣题库)跳跃游戏II(c++)
  • (每日持续更新)信息系统项目管理(第四版)(高级项目管理)考试重点整理 第13章 项目资源管理(七)
  • (四)Controller接口控制器详解(三)
  • (算法)求1到1亿间的质数或素数
  • (原創) 如何優化ThinkPad X61開機速度? (NB) (ThinkPad) (X61) (OS) (Windows)
  • (转)Sql Server 保留几位小数的两种做法
  • (转)程序员技术练级攻略
  • (转)负载均衡,回话保持,cookie
  • *Django中的Ajax 纯js的书写样式1
  • .NET Core WebAPI中封装Swagger配置
  • .NET MAUI学习笔记——2.构建第一个程序_初级篇
  • .NET Remoting学习笔记(三)信道
  • .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉
  • .Net开发笔记(二十)创建一个需要授权的第三方组件
  • .NET设计模式(8):适配器模式(Adapter Pattern)