Je réutilise des ImageView
s pour mes affichages, mais à un moment donné, je n'ai pas de valeurs pour les mettre.
Alors, comment effacer un ImageView
dans Android?
J'ai essayé:
mPhotoView.invalidate();
mPhotoView.setImageBitmap(null);
Aucun d'eux n'a effacé la vue, elle montre toujours l'image précédente.
Réponses:
Je le faisais avec la solution dennis.sheppard :
cela fonctionne, mais il n'est pas documenté, il n'est donc pas vraiment clair s'il affecte autre chose dans la vue (vous pouvez vérifier le code ImageView si vous le souhaitez, je ne l'ai pas fait).
Je pense que la meilleure solution est:
J'aime le plus cette solution car il n'y a rien de délicat à rétablir l'état et c'est aussi clair ce qu'elle fait.
la source
viewToUse.setImageResource(0);
ne fonctionne pas, mais leviewToUse.setImageResource(android.R.color.transparent);
travaillé.J'ai eu un problème similaire, où j'ai dû supprimer complètement ImageViews de l'écran. Certaines des réponses ici m'ont conduit dans la bonne direction, mais finalement, appeler setImageDrawable () a fonctionné pour moi:
(Comme mentionné dans le commentaire, une telle utilisation est documentée dans les documents officiels: ImageView # setImageDrawable .)
la source
Je sais que c'est vieux, mais j'ai pu y arriver avec
Il ne semble pas que cela devrait fonctionner, mais je l'ai essayé sur un coup de tête, et cela a fonctionné parfaitement.
la source
Il semble que ce que vous voulez soit une image par défaut pour définir votre ImageView lorsqu'elle n'affiche pas une image différente. Voici comment fonctionne l'application Contacts:
la source
J'ai essayé ceci pour effacer Image et DrawableCache dans ImageView
J'espère que cela fonctionne pour vous!
la source
Si aucune de ces solutions n'efface une image que vous avez déjà définie (en particulier
setImageResource(0)
ousetImageResources(android.R.color.transparent)
, vérifiez que l'image actuelle n'est pas définie comme arrière-plan à l'aide desetBackgroundDrawable(...)
ou quelque chose de similaire.Votre code définira simplement la ressource d'image au premier plan sur quelque chose de transparent devant l'image d'arrière-plan que vous avez définie et s'affichera toujours.
la source
Hé, je sais que je suis extrêmement en retard à cette réponse, mais je pensais juste que je devais partager cela,
La méthode à appeler lorsque vous réinitialisez l'image doit être la même que celle que vous avez appelée pendant que vous la définissiez.
Lorsque vous souhaitez réinitialiser la source de l' image @ dennis.sheepard, la réponse ne fonctionne correctement que si vous définissez initialement l'image dans le bitmap à l'aide
setImageResource()
par exemple,
j'avais utilisé
setImageBitmap()
et donc le réglagesetImageResource(0)
n'a pas fonctionnésetImageBitmap(null)
.la source
si vous utilisez la glisse, vous pouvez le faire comme ça.
la source
J'ai pu y parvenir en définissant un dessinable (quelque chose comme blank_white_shape.xml):
Ensuite, quand je veux effacer la vue de l'image, je viens d'appeler
Cela fonctionne à merveille pour moi!
la source
Pour l'image d'élément ListView, vous pouvez définir
ImageView.setVisibility(View.INVISIBLE)
ouImageView.setImageBitmap(null)
dans l'adaptateur de liste pour le cas "pas d'image".la source
Comme kwasi a écrit et golu édité, vous pouvez utiliser transparent, au lieu de blanc:
Fichier
drawable/transparent.xml
A l'intérieur d'une activité, vue, etc:
la source
Cela fonctionne pour moi.
Cela se bloque lors de l'exécution.
la source
Pour supprimer l'image dans ImageView:
title_image.setImageResource(-1);
cela fonctionne pour moi
la source
Si vous utilisez la bibliothèque de support, vous obtenez à la
AppCompatImageView
place deImageView
, qui prendsetImageResource(0)
en charge sur tous les appareils, vous devriez donc l'utiliser correctement de la même manière quesetImageDrawable(null)
etsetImageBitmap(null)
Sinon, cela devrait fonctionner correctement à partir d'une version Android. Selon le code d'Android et selon mes tests, je pense qu'il devrait être sûr d'utiliser
setImageResource(0)
depuis Android API 22 (5.1). Vous pouvez voir le code Android d'API 22 vs API 21, icila source
J'étais confronté au même problème que j'ai changé la couleur d'arrière-plan de la vue en une couleur d'arrière-plan de mise en page que vous pouvez faire comme ceci:
// puis définir l'image
la source
J'ai également essayé de supprimer l'image de l'ImageView,
ImageView.setImageRessource(0)
mais cela n'a pas fonctionné pour moi.Heureusement, j'ai reçu ce message dans les journaux:
Alors disons,
layoutmanager
est votre instance pour la mise en page, que vous devez faire:la source
Puis-je simplement signaler ce que vous essayez tous de définir et où il attend un dessinable.
ne devriez-vous pas faire ce qui suit?
la source