Eu tenho um ImageView
com uma imagem de origem definida no xml usando a seguinte sintaxe:
<ImageView
android:id="@+id/articleImg"
style="@style/articleImgSmall_2"
android:src="@drawable/default_m" />
Agora, preciso alterar essa imagem programaticamente. O que eu preciso fazer é excluir a imagem antiga e adicionar uma nova. O que eu fiz é o seguinte:
myImgView.setBackgroundResource(R.drawable.monkey);
Funciona, mas notei que o Android empilha a nova imagem em cima da antiga (não me pergunte como eu descobri que não é relevante para a discussão :). Definitivamente, preciso me livrar da antiga antes de definir a nova imagem.
Como posso conseguir isso?
android
imageview
android-imageview
nourdine
fonte
fonte
android.widget.ImageView
#setBackgroundContextCompat
para ficargetTheme
Você deveria usar em
setImageResource
vez desetBackgroundResource
.fonte
é usado para definir a imagem na visualização de imagem atual, mas se você quiser excluir essa imagem, poderá usar este código como:
Agora, isso excluirá a imagem da visualização da imagem, porque definiu o valor dos recursos como zero.
fonte
obter o ID do ImageView como
então use
para definir a imagem de origem programaticamente em vez de XML.
fonte
Ou tente este. Para mim, está funcionando bem:
fonte
Resposta visual suplementar
ImageView
:setImageResource()
(método padrão, relação de aspecto é mantida)View
:setBackgroundResource()
(a imagem está esticada)Ambos
Minha resposta mais completa está aqui .
fonte
Se você deseja definir na visualização de imagem uma imagem que esteja dentro dos diretórios do mipmap, faça o seguinte:
myImageView.setImageDrawable(getResources().getDrawable(R.mipmap.my_picture)
fonte
Basta escrever um método para alterar a visualização de imagem
fonte