Android Glide判断图像资源是否缓存onlyRetrieveFromCache,使用缓存数据,Kotlin

Android Glide判断图像资源是否缓存onlyRetrieveFromCache,使用缓存数据,Kotlin

Kotlin 复制代码
import android.graphics.Bitmap
import android.os.Bundle
import android.util.Log
import android.widget.ImageView
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.Target

class MainActivity : AppCompatActivity() {
    private val TAG = "fly"
    private val mContext = this

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        val imageView = findViewById<ImageView>(R.id.image)
        val url = "https://profile-avatar.csdnimg.cn/06993f9ad1b949fb8adffe2fd319515d_zhangphil.jpg"

        val size = 50
        glideOnlyLoadFromCache(url, size, object : OnCachedListener {
            override fun memCached(o: Any, hasCached: Boolean) {
                if (hasCached) {
                    Log.d(TAG, "找到缓存! ${o}")

                    GlideApp.with(mContext)
                        .asBitmap()
                        .load(url)
                        .centerCrop()
                        .override(size)
                        .into(imageView)
                } else {
                    Log.d(TAG, "没找到缓存! ${o}")
                }
            }
        })
    }

    //只从缓存中取图片,如果取到就通过接口回调。
    private fun glideOnlyLoadFromCache(url: String, size: Int, listener: OnCachedListener) {
        val target = GlideApp.with(this)
            .asBitmap()
            .load(url)
            .onlyRetrieveFromCache(true)
            .addListener(object : RequestListener<Bitmap> {
                override fun onLoadFailed(
                    e: GlideException?,
                    model: Any?,
                    target: Target<Bitmap>,
                    isFirstResource: Boolean
                ): Boolean {
                    Log.d(TAG, "没有缓存 $url")
                    listener.memCached(url, false)
                    return true
                }

                override fun onResourceReady(
                    resource: Bitmap,
                    model: Any,
                    target: Target<Bitmap>?,
                    dataSource: DataSource,
                    isFirstResource: Boolean
                ): Boolean {
                    Log.d(TAG, "发现缓存 $url")
                    listener.memCached(url, true)
                    return true
                }
            })
            .centerCrop()
            .override(size)
            .preload()
    }

    interface OnCachedListener {
        fun memCached(o: Any, hasCached: Boolean)
    }
}

Android Glide onlyRetrieveFromCache downloadOnly submit ,kotlin_zhangphil的博客-CSDN博客文章浏览阅读346次。【代码】Android Paging 3,kotlin(1)在实际的开发中,虽然Glide解决了快速加载图片的问题,但还有一个问题悬而未决:比如用户的头像,往往用户的头像是从服务器端读出的一个普通矩形图片,但是现在的设计一般要求在APP端的用户头像显示成圆形头像,那么此时虽然Glide可以加载,但加载出来的是一个矩形,如果要Glide_android 毛玻璃圆角。《Android图片加载与缓存开源框架:Android Glide》Android Glide是一个开源的图片加载和缓存处理的第三方框架。https://blog.csdn.net/zhangphil/article/details/131774130Android Glide预加载preload ,kotlin_zhangphil的博客-CSDN博客文章浏览阅读976次。【代码】Android Paging 3,kotlin(1)在实际的开发中,虽然Glide解决了快速加载图片的问题,但还有一个问题悬而未决:比如用户的头像,往往用户的头像是从服务器端读出的一个普通矩形图片,但是现在的设计一般要求在APP端的用户头像显示成圆形头像,那么此时虽然Glide可以加载,但加载出来的是一个矩形,如果要Glide_android 毛玻璃圆角。《Android图片加载与缓存开源框架:Android Glide》Android Glide是一个开源的图片加载和缓存处理的第三方框架。_glide预加载https://blog.csdn.net/zhangphil/article/details/131635804

Android Glide同步阻塞方式submit获得Bitmap,kotlin_glide 同步获取bitmap-CSDN博客文章浏览阅读632次。【代码】Android Paging 3,kotlin(1)在实际的开发中,虽然Glide解决了快速加载图片的问题,但还有一个问题悬而未决:比如用户的头像,往往用户的头像是从服务器端读出的一个普通矩形图片,但是现在的设计一般要求在APP端的用户头像显示成圆形头像,那么此时虽然Glide可以加载,但加载出来的是一个矩形,如果要Glide_android 毛玻璃圆角。《Android图片加载与缓存开源框架:Android Glide》Android Glide是一个开源的图片加载和缓存处理的第三方框架。_glide 同步获取bitmaphttps://blog.csdn.net/zhangphil/article/details/131641086Android Glide MemorySizeCalculator计算值,Kotlin_zhangphil的博客-CSDN博客文章浏览阅读745次。在实际的开发中,虽然Glide解决了快速加载图片的问题,但还有一个问题悬而未决:比如用户的头像,往往用户的头像是从服务器端读出的一个普通矩形图片,但是现在的设计一般要求在APP端的用户头像显示成圆形头像,那么此时虽然Glide可以加载,但加载出来的是一个矩形,如果要Glide_android 毛玻璃圆角。Android Glide数据更新及内存缓存、硬盘缓存清理事项Android的Glide在加载图片时候内部默认使用了缓存机制,Glide的缓存机制分为两级,第一级是内存缓存,然后第二级是硬盘缓存。_memorysizecalculatorhttps://blog.csdn.net/zhangphil/article/details/132119180

相关推荐
天空之城--2 小时前
Android逆向安全合规接单指南
android·安全
消失的旧时光-19434 小时前
Android 系统层扫盲 09:AMS、ATMS、WMS、PMS 到底分别管什么?
android·wms·pms·ams·aosp·atms
Godikov4 小时前
Android 系统级设备应用踩坑实录:sharedUserId 签名、SDK 授权失败 -4、开机自启与 U 盘 OTA 升级
android
IT毕设实战小研7 小时前
基于大数据的国内主要农作物产量趋势分析与可视化
android·java·大数据·django·课程设计
企业数字化笔记8 小时前
固定资产历史数据怎么导入系统?Excel模板、字段映射和数据校验
android·java·数据库·后端
龙之叶8 小时前
Android出海系列-GMS认证介绍
android
潮族大Z8 小时前
Android性能优化:启动、内存、卡顿的一站式排查手册
android
码农哈丁10 小时前
从 JVM 到 Cargo:把整个 Kotlin 项目移植到 Rust 的踩坑实录
jvm·rust·kotlin
事圆则缓10 小时前
从suspend字节码到 Retrofit 协程桥:挂起函数识别与恢复
android·retrofit
杉氧11 小时前
RN 性能调优指南:重渲染(Re-renders)控制与长列表(FlatList)优化
android·前端·react native