Android Glide solo limita RetrieveFromCache para obtener el método de bloqueo del tiempo de espera de envío de la memoria caché, Kotlin

Android Glide solo limita RetrieveFromCache para obtener el método de bloqueo del tiempo de espera de envío de la memoria caché, 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)
                }
            }
        }
    }
}

 

 

Solo Android GlideDescarga de RetrieveFromCacheSolo envíe, el artículo del blog blog-CSDN de kotlin_zhangphil ha sido visto 353 veces. [Código] Android Paging 3, kotlin (1) En el desarrollo real, aunque Glide resuelve el problema de la carga rápida de imágenes, todavía queda un problema sin resolver: como el avatar del usuario, que a menudo se lee desde el servidor. Imagen, pero el diseño actual generalmente requiere que el avatar del usuario en el lado de la aplicación se muestre como un avatar circular. Entonces, aunque Glide se puede cargar en este momento, lo que se carga es un rectángulo. Si desea que Glide_android tenga esquinas redondeadas de vidrio esmerilado. "Marco de código abierto de carga y almacenamiento en caché de imágenes de Android: Android Glide" Android Glide es un marco de terceros de código abierto para el procesamiento de carga y almacenamiento en caché de imágenes. https://blog.csdn.net/zhangphil/article/details/131774130 Envío del método de bloqueo sincrónico de Android Glide para obtener el mapa de bits, kotlin_glide obtiene el mapa de bits de forma sincrónica: el artículo del blog de CSDN se ha visto 638 veces. [Código] Android Paging 3, kotlin (1) En el desarrollo real, aunque Glide resuelve el problema de la carga rápida de imágenes, todavía queda un problema sin resolver: como el avatar del usuario, que a menudo se lee desde el servidor. Imagen, pero el diseño actual generalmente requiere que el avatar del usuario en el lado de la aplicación se muestre como un avatar circular. Entonces, aunque Glide se puede cargar en este momento, lo que se carga es un rectángulo. Si desea que Glide_android tenga esquinas redondeadas de vidrio esmerilado. "Marco de código abierto de carga y almacenamiento en caché de imágenes de Android: Android Glide" Android Glide es un marco de terceros de código abierto para el procesamiento de carga y almacenamiento en caché de imágenes. _glide obtiene sincrónicamente el mapa de bits https://blog.csdn.net/zhangphil/article/details/131641086 Android Glide determina si el recurso de imagen está almacenado en caché solamenteRetrieveFromCache, utilizando datos almacenados en caché, el artículo del blog Kotlin-CSDN se ha visto 246 veces. [Código] Android Paging 3, kotlin (1) En el desarrollo real, aunque Glide resuelve el problema de la carga rápida de imágenes, todavía queda un problema sin resolver: como el avatar del usuario, que a menudo se lee desde el servidor. Imagen, pero el diseño actual generalmente requiere que el avatar del usuario en el lado de la aplicación se muestre como un avatar circular. Entonces, aunque Glide se puede cargar en este momento, lo que se carga es un rectángulo. Si desea que Glide_android tenga esquinas redondeadas de vidrio esmerilado. "Marco de código abierto de carga y almacenamiento en caché de imágenes de Android: Android Glide" Android Glide es un marco de terceros de código abierto para el procesamiento de carga y almacenamiento en caché de imágenes. https://blog.csdn.net/zhangphil/article/details/134038421 Manejo de excepciones de Kotlin runCatching, getOrDefault, getOrNull run (2): el artículo del blog de CSDN se ha leído 44 veces. b-catch: java.lang.RuntimeException: se produjo una excepción en b. Manejo de excepciones de Kotlin try-catch-finally. Manejo de excepciones de Kotlin en el blog CSDN de try-catch-finally_zhangphil. b-catch: java.lang.RuntimeException: se produjo una excepción en b. Manejo de excepciones de Kotlin try-catch-finally. Manejo de excepciones de Kotlin en el blog CSDN de try-catch-finally_zhangphil. https://blog.csdn.net/zhangphil/article/details/133279933 Manejo de excepciones de Kotlin runCatching, getOrNull, onFailure, onSuccess (1): el artículo del blog de CSDN se ha leído 451 veces. b-catch: java.lang.RuntimeException: se produjo una excepción en b. Manejo de excepciones de Kotlin try-catch-finally. Manejo de excepciones de Kotlin en el blog CSDN de try-catch-finally_zhangphil. https://blog.csdn.net/zhangphil/article/details/133279853

 

Supongo que te gusta

Origin blog.csdn.net/zhangphil/article/details/134051794
Recomendado
Clasificación