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

痛定思痛。 2024-02-20 08:14 137阅读 0赞

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

  1. import android.graphics.Bitmap
  2. import android.os.Bundle
  3. import android.util.Log
  4. import android.widget.ImageView
  5. import androidx.appcompat.app.AppCompatActivity
  6. import com.bumptech.glide.load.DataSource
  7. import com.bumptech.glide.load.engine.GlideException
  8. import com.bumptech.glide.request.RequestListener
  9. import com.bumptech.glide.request.target.Target
  10. class MainActivity : AppCompatActivity() {
  11. private val TAG = "fly"
  12. private val mContext = this
  13. override fun onCreate(savedInstanceState: Bundle?) {
  14. super.onCreate(savedInstanceState)
  15. setContentView(R.layout.activity_main)
  16. val imageView = findViewById<ImageView>(R.id.image)
  17. val url = "https://profile-avatar.csdnimg.cn/06993f9ad1b949fb8adffe2fd319515d_zhangphil.jpg"
  18. val size = 50
  19. glideOnlyLoadFromCache(url, size, object : OnCachedListener {
  20. override fun memCached(o: Any, hasCached: Boolean) {
  21. if (hasCached) {
  22. Log.d(TAG, "找到缓存! ${o}")
  23. GlideApp.with(mContext)
  24. .asBitmap()
  25. .load(url)
  26. .centerCrop()
  27. .override(size)
  28. .into(imageView)
  29. } else {
  30. Log.d(TAG, "没找到缓存! ${o}")
  31. }
  32. }
  33. })
  34. }
  35. //只从缓存中取图片,如果取到就通过接口回调。
  36. private fun glideOnlyLoadFromCache(url: String, size: Int, listener: OnCachedListener) {
  37. val target = GlideApp.with(this)
  38. .asBitmap()
  39. .load(url)
  40. .onlyRetrieveFromCache(true)
  41. .addListener(object : RequestListener<Bitmap> {
  42. override fun onLoadFailed(
  43. e: GlideException?,
  44. model: Any?,
  45. target: Target<Bitmap>,
  46. isFirstResource: Boolean
  47. ): Boolean {
  48. Log.d(TAG, "没有缓存 $url")
  49. listener.memCached(url, false)
  50. return true
  51. }
  52. override fun onResourceReady(
  53. resource: Bitmap,
  54. model: Any,
  55. target: Target<Bitmap>?,
  56. dataSource: DataSource,
  57. isFirstResource: Boolean
  58. ): Boolean {
  59. Log.d(TAG, "发现缓存 $url")
  60. listener.memCached(url, true)
  61. return true
  62. }
  63. })
  64. .centerCrop()
  65. .override(size)
  66. .preload()
  67. }
  68. interface OnCachedListener {
  69. fun memCached(o: Any, hasCached: Boolean)
  70. }
  71. }

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

发表评论

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

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

相关阅读

    相关 Android Glide缓存策略

    一、glide缓存策略 缓存在请求网络图片时能减少不必要的流量浪费。Glide 缓存分为内存缓存和硬盘缓存,这两个缓存模块的作用各不相同,内存缓存的主要作用是 防止应用重