Olá!
No código do git não é mostrado como implementar o código de suporte do gif dentro do adapter. Eu fiz assim e funcionou, mas gostaria de saber se existe uma abordagem mais correta.
class ListaProdutosAdapter(
private val context: Context,
produtos: List<Produto>
) : RecyclerView.Adapter<ListaProdutosAdapter.ViewHolder>() {
private val produtos = produtos.toMutableList()
inner class ViewHolder(private val binding: ProdutoItemBinding) :
RecyclerView.ViewHolder(binding.root) {
***************************************************************
var imageLoader = ImageLoader.Builder(context)
.componentRegistry {
if (Build.VERSION.SDK_INT >= 28) {
add(ImageDecoderDecoder(context))
} else {
add(GifDecoder())
}
}
.build()
***************************************************************
fun vincula(produto: Produto) {
val nome = binding.produtoItemNome
nome.text = produto.nome
val descricao = binding.produtoItemDescricao
descricao.text = produto.descricao
val valor = binding.produtoItemValor
val valorEmMoeda = formataParaMoedaEuro(produto.valor)
valor.text = valorEmMoeda
val imagem = binding.imageView
imagem.load(produto.imagem, imageLoader)
}
private fun formataParaMoedaEuro(valor: BigDecimal): String? {
val formatador = NumberFormat.getCurrencyInstance(Locale("pt", "pt"))
return formatador.format(valor)
}
}
Pensei em deixar no escopo da outer class mas acabei tomando uma NPE
obrigado