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

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

Android Glide限定onlyRetrieveFromCache取内存缓存submit超时阻塞方式,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

 


http://www.kler.cn/a/106332.html

相关文章:

  • mac上使用docker搭建gitlab
  • 蓝队基础1
  • Prometheus监控SQL SERVER常用指标和PromQL预警
  • 【Redis】Redis的一些应用场景及使用策略
  • 11.08-10.14谷粒商城
  • Pytorch如何将嵌套的dict类型数据加载到GPU
  • 什么是可重入,什么是可重入锁? 它用来解决什么问题?
  • 泛微OA之获取每月固定日期
  • LabVIEW更改图像特定部分的颜色
  • 【API篇】十、生成Flink水位线
  • 3DMAX金属屋顶墙面铺设插件使用方法
  • 自动驾驶感知算法面经(20+)
  • toluaframework中C#怎么调用Lua的方法以及无GC方法
  • 大数据平台架构及规划
  • 计算机网络【CN】IPV4报文格式
  • 创纪录的1亿RPS DDoS攻击利用HTTP/2快速重置漏洞
  • 49.Redis缓存设计与性能优化
  • 关于网络安全运营工作与安全建设工作的一些思考
  • 番外8.2 --- 后续
  • Linux 内核的 current
  • EtherNet Ip工业RFID读写器与欧姆龙PLC 配置示例说明
  • 【软件教程】如何用C++检查TCP或UDP端口是否被占用
  • 网工内推 | 急招网工,思科、华为认证优先,法定节假日三薪
  • mysql GRANT创建用户授权
  • 2023 年 的 DBA 有哪些变化?
  • zk-Bench:SNARKs性能对比评估工具