2
respostas

Implementando Gifs

Mais uma vez tendo que vir ao forum tirar duvidas pq o material apresentado simplesmente nao funciona, ta dificil desse jeito! passar uma pratica que o professor nao ensinou, e ter q se virar pra resolver...

o codigo de implentação:

val imageLoader = ImageLoader.Builder(this)
            .componentRegistry {
                if (SDK_INT >= 28) {
                    add(ImageDecoderDecoder(this@FormularioProdutoActivity))
                } else {
                    add(GifDecoder())
                }
            }.build()

da erro e nao funciona no codigo.

"add(ImageDecoderDecoder(this@FormularioProdutoActivity))" - fala que requer uma imagemSource e recebe um FormularioProdutoActivity

ImageDecoderDecoder sem o .Factory simplesmente da erro no add , varias duvidas e a solução nao funciona incrivel...

2 respostas

Olá, Danilo.

Tudo bem?

O erro que você está encontrando é porque a classe ImageDecoderDecoder precisa de um ImageDecoder.Source como argumento, e não um FormularioProdutoActivity.

Aqui está um exemplo de como você pode tentar implementar isso:

val imageLoader = ImageLoader.Builder(this)
    .componentRegistry {
        if (SDK_INT >= 28) {
            add(ImageDecoderDecoder { request -> ImageDecoder.createSource(request.service(Context::class.java).contentResolver, request.data.uri!!) })
        } else {
            add(GifDecoder())
        }
    }.build()

Neste exemplo, estou usando uma lambda para criar uma instância de ImageDecoder.Source usando ImageDecoder.createSource(). Esta função precisa de um ContentResolver e um Uri, que estou obtendo do request passado para a lambda.

Por favor, substitua o código acima no seu projeto e veja se isso resolve o problema, tenta entender o código, pois pode precisar fazer algum ajuste. Espero ter ajudado e bons estudos!

Eh entao esse é meu problema, o codigo a cima que citei é a solução dada pela plataforma para a implementação dos gifs no kotlin :)

https://github.com/alura-cursos/android-com-kotlin-personalizando-ui/commit/57f1722638b83a686a449c05ae90f699e9553cd3