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

相关推荐
Carson带你学Android9 分钟前
编译更快、语法更香?一文看懂 Kotlin 2.3.20 的 6 大核心演进
android·kotlin
jwn99912 分钟前
Laravel3.x经典特性全解析
android
followYouself16 分钟前
Android点击事件分发流程
android·事件分发机制
峥嵘life22 分钟前
Android 13 Miracast 投屏代码适配总结
android·后端·asp.net
幸福在路上wellbeing30 分钟前
Android Compose UI 控件
android·ui
cch89181 小时前
Laravel1.x:初代PHP框架的起点
android
三少爷的鞋1 小时前
Android 现代架构不需要事件总线
android
雨白8 小时前
深入理解 Kotlin 协程 (二):万剑归宗,揭秘 Kotlin 协程的精妙取舍
kotlin
程序员陆业聪8 小时前
你的 Android App 可能白白损失了 35% 的性能——R8 全模式配置详解
android
海兰12 小时前
【实战】MCP 服务在 Nacos 中注册状态分析与优化
android·java·github·银行系统·银行ai