Ich verwende ImageView
s für meine Displays wieder, aber irgendwann habe ich keine Werte mehr, um es auszudrücken.
Wie lösche ich ein ImageView
in Android?
Ich habe es versucht:
mPhotoView.invalidate();
mPhotoView.setImageBitmap(null);
Keiner von ihnen hat die Ansicht gelöscht, es wird immer noch das vorherige Bild angezeigt.
Antworten:
Ich habe es mit der dennis.sheppard- Lösung gemacht:
es funktioniert, aber es ist nicht dokumentiert, so dass es nicht wirklich klar ist, ob es etwas anderes in der Ansicht bewirkt (Sie können den ImageView-Code überprüfen , wenn Sie möchten , ich habe es nicht getan).
Ich denke, die beste Lösung ist:
Ich mag diese Lösung am meisten, weil es nicht schwierig ist, den Zustand wiederherzustellen, und es ist auch klar, was sie tut.
quelle
viewToUse.setImageResource(0);
funktioniert nicht, aber das hatviewToUse.setImageResource(android.R.color.transparent);
funktioniert.Ich hatte ein ähnliches Problem, bei dem ich ImageViews grundsätzlich vollständig vom Bildschirm entfernen musste. Einige der Antworten hier führten mich in die richtige Richtung, aber letztendlich funktionierte das Aufrufen von setImageDrawable () für mich:
(Wie im Kommentar erwähnt, ist eine solche Verwendung in den offiziellen Dokumenten dokumentiert: ImageView # setImageDrawable .)
quelle
Ich weiß, dass dies alt ist, aber ich konnte dies mit erreichen
Scheint nicht so, als ob es funktionieren sollte, aber ich habe es aus einer Laune heraus versucht und es hat perfekt funktioniert.
quelle
Es hört sich so an, als ob Sie ein Standardbild wünschen, auf das Sie Ihre ImageView einstellen sollen, wenn kein anderes Bild angezeigt wird. So macht es die Kontaktanwendung:
quelle
Ich habe dies versucht, um Image und DrawableCache in ImageView zu löschen
Ich hoffe das funktioniert bei dir!
quelle
Wenn keine dieser Lösungen ein bereits festgelegtes Bild löscht (insbesondere
setImageResource(0)
odersetImageResources(android.R.color.transparent)
, stellen Sie sicher, dass das aktuelle Bild nicht als Hintergrund mitsetBackgroundDrawable(...)
oder ähnlichem festgelegt ist.Ihr Code setzt nur die Bildressource im Vordergrund auf etwas Transparentes vor dem von Ihnen festgelegten Hintergrundbild und wird weiterhin angezeigt.
quelle
Hey, ich weiß, ich bin sehr spät zu dieser Antwort, aber ich dachte nur, ich muss das teilen,
Die Methode, die beim Zurücksetzen des Bildes aufgerufen werden soll, muss dieselbe sein, die Sie beim Einstellen aufgerufen haben.
Wenn Sie die Bildquelle zurücksetzen möchten, funktioniert die Antwort @ dennis.sheepard nur dann einwandfrei , wenn Sie das Bild ursprünglich in der Bitmap mit verwenden
setImageResource()
zum Beispiel,
Ich hatte verwendet
setImageBitmap()
und daher hat die EinstellungsetImageResource(0)
nicht funktioniert, stattdessen habe ich verwendetsetImageBitmap(null)
.quelle
Wenn Sie Glide verwenden, können Sie dies so tun.
quelle
Ich konnte dies erreichen, indem ich ein Drawable definierte (so etwas wie blank_white_shape.xml):
Wenn ich dann die Bildansicht löschen möchte, rufe ich einfach an
Das funktioniert wunderbar für mich!
quelle
Für das ListView-Elementbild können Sie
ImageView.setVisibility(View.INVISIBLE)
oderImageView.setImageBitmap(null)
im Listenadapter den Fall "kein Bild" festlegen .quelle
Während kwasi schrieb und golu bearbeitete, können Sie transparent anstelle von weiß verwenden:
Datei
drawable/transparent.xml
Innerhalb einer Aktivität, Ansicht usw.:
quelle
Das funktioniert bei mir.
Dies stürzt zur Laufzeit ab.
quelle
Um das Bild in ImageView zu entfernen, verwenden Sie:
title_image.setImageResource(-1);
Es funktioniert für mich
quelle
Wenn Sie die Support-Bibliothek verwenden, erhalten Sie
AppCompatImageView
stattdessen die UnterstützungImageView
, diesetImageResource(0)
auf allen Geräten unterstützt wird. Sie sollten sie also genauso verwenden können wiesetImageDrawable(null)
undsetImageBitmap(null)
Andernfalls sollte es ab einer Android-Version einwandfrei funktionieren. Nach dem Code von Android und nach meinen Tests sollte die Verwendung
setImageResource(0)
von Android API 22 (5.1) sicher sein . Sie können den Android-Code von API 22 gegenüber API 21 hier sehenquelle
Ich hatte das gleiche Problem, bei dem ich die Hintergrundfarbe der Ansicht in die Hintergrundfarbe des Layouts geändert habe.
// dann setze das Bild
quelle
Ich habe versucht, das Image der ImageView auch mit zu entfernen,
ImageView.setImageRessource(0)
aber es hat bei mir nicht funktioniert.Zum Glück habe ich diese Nachricht in den Protokollen erhalten:
Nehmen wir also an,
layoutmanager
ist Ihre Instanz für das Layout, als Sie das tun müssen:quelle
Kann ich nur darauf hinweisen, was Sie alle zu setzen versuchen und int, wo es ein Drawable erwartet.
sollten Sie nicht Folgendes tun?
quelle