Estou reutilizando ImageView
s para meus monitores, mas em algum momento não tenho valores para colocá-lo.
Então, como limpar um ImageView
no Android?
Eu tentei:
mPhotoView.invalidate();
mPhotoView.setImageBitmap(null);
Nenhum deles limpou a visualização, ainda mostra a imagem anterior.
Respostas:
Eu costumava fazer isso com a solução dennis.sheppard :
funciona, mas não está documentado, portanto não está claro se isso afeta outra coisa na exibição (você pode verificar o código ImageView, se quiser, não o fiz).
Eu acho que a melhor solução é:
Gosto mais desta solução porque não há nada de complicado em reverter o estado e também está claro o que está fazendo.
fonte
viewToUse.setImageResource(0);
não funcionou, masviewToUse.setImageResource(android.R.color.transparent);
funcionou.Eu tive um problema semelhante, onde eu precisava basicamente remover completamente o ImageViews da tela. Algumas das respostas aqui me levaram na direção certa, mas finalmente chamar setImageDrawable () funcionou para mim:
(Conforme mencionado no comentário, esse uso está documentado nos documentos oficiais: ImageView # setImageDrawable .)
fonte
Sei que isso é antigo, mas consegui fazer isso com
Parece que não deve funcionar, mas tentei por um capricho e funcionou perfeitamente.
fonte
Parece que o que você deseja é uma imagem padrão para definir o ImageView quando não estiver exibindo uma imagem diferente. É assim que o aplicativo Contatos faz isso:
fonte
Eu tentei isso para limpar Image e DrawableCache no ImageView
Espero que isso funcione pra você !
fonte
Se nenhuma dessas soluções estiver limpando uma imagem que você já definiu (especialmente
setImageResource(0)
ousetImageResources(android.R.color.transparent)
, verifique se a imagem atual não está definida como segundo planosetBackgroundDrawable(...)
ou algo semelhante).Seu código apenas definirá o recurso de imagem em primeiro plano como algo transparente na frente da imagem de plano de fundo que você definiu e ainda será exibida.
fonte
Ei, eu sei que estou extremamente atrasado para esta resposta, mas pensei em compartilhar isso,
O método a ser chamado quando você redefinir a imagem deve ser o mesmo método que você chamou enquanto a definia.
Quando você deseja redefinir a fonte da imagem, a resposta @ dennis.sheepard funciona bem apenas se você estiver configurando a imagem originalmente no bitmap usando
setImageResource()
por exemplo,
eu tinha usado
setImageBitmap()
e, portanto, a configuraçãosetImageResource(0)
não funcionou, em vez disso, useisetImageBitmap(null)
.fonte
se você usar o glide, poderá fazê-lo assim.
fonte
Consegui fazer isso definindo um drawable (algo como blank_white_shape.xml):
Então, quando eu quero limpar a visualização da imagem, eu chamo
Isso funciona lindamente para mim!
fonte
Para a imagem do item do ListView, você pode definir
ImageView.setVisibility(View.INVISIBLE)
ouImageView.setImageBitmap(null)
no adaptador de lista o caso "sem imagem".fonte
Como o kwasi escreveu e o golu editou, você pode usar transparente, em vez de branco:
Arquivo
drawable/transparent.xml
Dentro de uma atividade, visão, etc:
fonte
Isso funciona para mim.
Isso trava no tempo de execução.
fonte
Para remover a imagem no ImageView, use:
title_image.setImageResource(-1);
funciona para mim
fonte
Se você usa a biblioteca de suporte, obtém, em
AppCompatImageView
vez deImageView
, o que é compatívelsetImageResource(0)
com todos os dispositivos, portanto você deve usá-lo da mesma maneira que usasetImageDrawable(null)
esetImageBitmap(null)
Caso contrário, deve funcionar bem a partir de uma versão do Android. De acordo com o código do Android e de acordo com meus testes, acho que deve ser seguro usar a
setImageResource(0)
API Android 22 (5.1). Você pode ver o código Android da API 22 vs API 21, aquifonte
Eu estava enfrentando o mesmo problema, mudei a cor de fundo da exibição para a cor de fundo do layout que você pode fazer assim:
// depois defina a imagem
fonte
Tentei remover a imagem do ImageView também,
ImageView.setImageRessource(0)
mas não funcionou para mim.Felizmente, recebi esta mensagem nos logs:
Então, digamos,
layoutmanager
é sua instância para o layout, do que você precisa fazer isso:fonte
Posso apenas apontar o que todos vocês estão tentando definir e int onde está esperando um drawable.
você não deveria estar fazendo o seguinte?
fonte