Android Glide限定onlyRetrieveFromCache取内存缓存submit超时阻塞方式,Kotlin

Android Glide限定onlyRetrieveFromCache取内存缓存submit超时阻塞方式,Kotlin

Kotlin 复制代码
import android.os.Bundle
import android.util.Log
import android.widget.ImageView
import androidx.appcompat.app.AppCompatActivity
import androidx.lifecycle.lifecycleScope
import com.bumptech.glide.load.engine.DiskCacheStrategy
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext
import java.util.concurrent.TimeUnit

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

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        val image = findViewById<ImageView>(R.id.image)

        val size = 1000
        val timeOut = 20L //20毫秒超时
        val ctx = this

        lifecycleScope.launch(Dispatchers.IO) {
            val bmp = kotlin.runCatching {
                GlideApp.with(ctx)
                    .asBitmap()
                    .onlyRetrieveFromCache(true)
                    .diskCacheStrategy(DiskCacheStrategy.RESOURCE)
                    .centerCrop()
                    .load(android.R.drawable.stat_notify_error)
                    .override(size)
                    .submit()
                    .get(timeOut, TimeUnit.MICROSECONDS)
            }.onSuccess {
                Log.d(TAG, "onSuccess 取到缓存")
            }.onFailure {
                Log.d(TAG, "onFailure ${it}")
            }.getOrNull()

            withContext(Dispatchers.Main) {
                if (bmp == null) {
                    Log.d(TAG, "没取到缓存,启动新任务")

                    //取不到bmp缓存,启动新加载。
                    GlideApp.with(ctx)
                        .asBitmap()
                        .centerCrop()
                        .override(size)
                        .load(android.R.drawable.stat_notify_error)
                        .into(image)
                } else {
                    Log.d(TAG, "取到缓存 ${bmp.byteCount}")
                    //取到以往存在的bmp缓存。
                    image.setImageBitmap(bmp)
                }
            }
        }
    }
}

Android Glide onlyRetrieveFromCache downloadOnly submit ,kotlin_zhangphil的博客-CSDN博客文章浏览阅读353次。【代码】Android Paging 3,kotlin(1)在实际的开发中,虽然Glide解决了快速加载图片的问题,但还有一个问题悬而未决:比如用户的头像,往往用户的头像是从服务器端读出的一个普通矩形图片,但是现在的设计一般要求在APP端的用户头像显示成圆形头像,那么此时虽然Glide可以加载,但加载出来的是一个矩形,如果要Glide_android 毛玻璃圆角。《Android图片加载与缓存开源框架:Android Glide》Android Glide是一个开源的图片加载和缓存处理的第三方框架。https://blog.csdn.net/zhangphil/article/details/131774130Android Glide同步阻塞方式submit获得Bitmap,kotlin_glide 同步获取bitmap-CSDN博客文章浏览阅读638次。【代码】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判断图像资源是否缓存onlyRetrieveFromCache,使用缓存数据,Kotlin-CSDN博客文章浏览阅读246次。【代码】Android Paging 3,kotlin(1)在实际的开发中,虽然Glide解决了快速加载图片的问题,但还有一个问题悬而未决:比如用户的头像,往往用户的头像是从服务器端读出的一个普通矩形图片,但是现在的设计一般要求在APP端的用户头像显示成圆形头像,那么此时虽然Glide可以加载,但加载出来的是一个矩形,如果要Glide_android 毛玻璃圆角。《Android图片加载与缓存开源框架:Android Glide》Android Glide是一个开源的图片加载和缓存处理的第三方框架。https://blog.csdn.net/zhangphil/article/details/134038421Kotlin异常处理runCatching,getOrDefault,getOrNull run(2)-CSDN博客文章浏览阅读44次。b-catch: java.lang.RuntimeException: b发生异常。kotlin异常处理try-catch-finally。kotlin异常处理try-catch-finally_zhangphil的博客-CSDN博客。b-catch: java.lang.RuntimeException: b发生异常。kotlin异常处理try-catch-finally。kotlin异常处理try-catch-finally_zhangphil的博客-CSDN博客。https://blog.csdn.net/zhangphil/article/details/133279933Kotlin异常处理runCatching,getOrNull,onFailure,onSuccess(1)-CSDN博客文章浏览阅读451次。b-catch: java.lang.RuntimeException: b发生异常。kotlin异常处理try-catch-finally。kotlin异常处理try-catch-finally_zhangphil的博客-CSDN博客。https://blog.csdn.net/zhangphil/article/details/133279853

相关推荐
ZealSinger12 小时前
Boot4挂起函数丢traceId怎么修
spring boot·kotlin·协程·可观测性
素师良码17 小时前
第5篇:显示驱动必备调试工具浅析
android
维克兜率天17 小时前
【维克】配对交易的季节性:哪些品种适合长拿?
android·开发语言·笔记·python·算法·kotlin·量化
墨天梦18 小时前
B06_XML控件布局与ViewBinding
android·kotlin
晚风叙码18 小时前
MySQL 表的操作:从建表到删表,一篇讲清楚
android·mysql·oracle
事圆则缓19 小时前
Android 性能优化常见工具与使用场景:从症状到证据的排查指南
android·性能优化
avi911119 小时前
Unity 非后台,非自动构建,但统计报表 BuildReport ,构建自动化系统C#
android·webserver·ios打包·admin·c#后台·unity打包系统·unity自动构建
新鲜势力呀20 小时前
PHP 定时任务系统实战:从 Cron 混乱执行到任务调度中心 + Redis队列 + 失败重试
android·java·redis
YF021120 小时前
Android 16系统 如何修改 eth0 IP ?
android
其实防守也摸鱼20 小时前
渗透测试学习计划(全栈综合 · 零基础进阶)
android·数据库·学习·安全·oracle·自动化·学习方法