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

Myth丶恋晨 2024-02-20 08:41 109阅读 0赞

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

#

  1. import android.os.Bundle
  2. import android.util.Log
  3. import android.widget.ImageView
  4. import androidx.appcompat.app.AppCompatActivity
  5. import androidx.lifecycle.lifecycleScope
  6. import com.bumptech.glide.load.engine.DiskCacheStrategy
  7. import kotlinx.coroutines.Dispatchers
  8. import kotlinx.coroutines.launch
  9. import kotlinx.coroutines.withContext
  10. import java.util.concurrent.TimeUnit
  11. class MainActivity : AppCompatActivity() {
  12. private val TAG = "fly"
  13. override fun onCreate(savedInstanceState: Bundle?) {
  14. super.onCreate(savedInstanceState)
  15. setContentView(R.layout.activity_main)
  16. val image = findViewById<ImageView>(R.id.image)
  17. val size = 1000
  18. val timeOut = 20L //20毫秒超时
  19. val ctx = this
  20. lifecycleScope.launch(Dispatchers.IO) {
  21. val bmp = kotlin.runCatching {
  22. GlideApp.with(ctx)
  23. .asBitmap()
  24. .onlyRetrieveFromCache(true)
  25. .diskCacheStrategy(DiskCacheStrategy.RESOURCE)
  26. .centerCrop()
  27. .load(android.R.drawable.stat_notify_error)
  28. .override(size)
  29. .submit()
  30. .get(timeOut, TimeUnit.MICROSECONDS)
  31. }.onSuccess {
  32. Log.d(TAG, "onSuccess 取到缓存")
  33. }.onFailure {
  34. Log.d(TAG, "onFailure ${it}")
  35. }.getOrNull()
  36. withContext(Dispatchers.Main) {
  37. if (bmp == null) {
  38. Log.d(TAG, "没取到缓存,启动新任务")
  39. //取不到bmp缓存,启动新加载。
  40. GlideApp.with(ctx)
  41. .asBitmap()
  42. .centerCrop()
  43. .override(size)
  44. .load(android.R.drawable.stat_notify_error)
  45. .into(image)
  46. } else {
  47. Log.d(TAG, "取到缓存 ${bmp.byteCount}")
  48. //取到以往存在的bmp缓存。
  49. image.setImageBitmap(bmp)
  50. }
  51. }
  52. }
  53. }
  54. }

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

发表评论

表情:
评论列表 (有 0 条评论,109人围观)

还没有评论,来说两句吧...

相关阅读