Ponownie używam ImageView
s do moich wyświetlaczy, ale w pewnym momencie nie mam wartości, aby je umieścić.
Jak wyczyścić system ImageView
Android?
Próbowałem:
mPhotoView.invalidate();
mPhotoView.setImageBitmap(null);
Żadne z nich nie wyczyściło widoku, nadal pokazuje poprzednie zdjęcie.
Odpowiedzi:
Robiłem to z rozwiązaniem dennis.sheppard :
działa, ale nie jest udokumentowane, więc nie jest tak naprawdę jasne, czy wpływa na coś innego w widoku (możesz sprawdzić kod ImageView, jeśli chcesz, nie zrobiłem tego).
Myślę, że najlepszym rozwiązaniem jest:
Najbardziej podoba mi się to rozwiązanie, ponieważ nie ma nic trudnego w przywróceniu stanu, a także jasne jest, co robi.
źródło
viewToUse.setImageResource(0);
nie działa, aleviewToUse.setImageResource(android.R.color.transparent);
działało.Miałem podobny problem, w którym musiałem całkowicie usunąć ImageViews z ekranu. Niektóre odpowiedzi tutaj poprowadziły mnie we właściwym kierunku, ale ostatecznie wywołanie setImageDrawable () zadziałało dla mnie:
(Jak wspomniano w komentarzu, takie użycie jest udokumentowane w oficjalnych dokumentach: ImageView # setImageDrawable .)
źródło
Wiem, że to stare, ale udało mi się to osiągnąć
Nie wydaje się, żeby to działało, ale wypróbowałem go pod wpływem kaprysu i działało idealnie.
źródło
Wygląda na to, że to, czego chcesz, to domyślny obraz, na który ustawiasz ImageView, gdy nie wyświetla innego obrazu. W ten sposób robi to aplikacja Kontakty:
źródło
Próbowałem tego, aby wyczyścić Image i DrawableCache w ImageView
Mam nadzieję, że to zadziała dla Ciebie!
źródło
Jeśli żadne z tych rozwiązań nie usuwa obrazu, który już ustawiłeś (szczególnie
setImageResource(0)
lubsetImageResources(android.R.color.transparent)
sprawdź, czy bieżący obraz nie jest ustawiony jako tło za pomocąsetBackgroundDrawable(...)
lub coś podobnego.Twój kod po prostu ustawi zasób obrazu na pierwszym planie na coś przezroczystego przed ustawionym obrazem tła i nadal będzie się wyświetlać.
źródło
Hej, wiem, że jestem bardzo spóźniony na tę odpowiedź, ale pomyślałem, że muszę się tym podzielić,
Metodą wywoływania przy resetowaniu obrazu musi być ta sama metoda, którą wywoływałeś podczas ustawiania go.
Kiedy chcesz zresetować źródło obrazu @ dennis.sheepard odpowiedź działa poprawnie tylko wtedy, gdy pierwotnie ustawiasz obraz w bitowej za pomocą
setImageResource()
na przykład,
Użyłem
setImageBitmap()
i dlatego ustawienie niesetImageResource(0)
działa, zamiast tego użyłemsetImageBitmap(null)
.źródło
jeśli użyjesz poślizgu, możesz to zrobić w ten sposób.
źródło
Byłem w stanie to osiągnąć, definiując dający się rysować (coś takiego jak blank_white_shape.xml):
Potem, gdy chcę wyczyścić widok obrazu, po prostu dzwonię
To działa dla mnie pięknie!
źródło
W przypadku obrazu elementu ListView można ustawić
ImageView.setVisibility(View.INVISIBLE)
lubImageView.setImageBitmap(null)
w adapterze listy dla przypadku „brak obrazu”.źródło
Jak napisał kwasi i pod redakcją golu , możesz użyć przezroczystego zamiast białego:
Plik
drawable/transparent.xml
Wewnątrz działania, widoku itp .:
źródło
To działa dla mnie.
To ulega awarii w czasie wykonywania.
źródło
Aby usunąć obraz w ImageView użyj:
title_image.setImageResource(-1);
działa dla mnie
źródło
Jeśli korzystasz z biblioteki wsparcia, dostajesz
AppCompatImageView
zamiast tegoImageView
, który obsługujesetImageResource(0)
na wszystkich urządzeniach, więc powinieneś być w stanie używać go w taki sam sposób, jak przy użyciusetImageDrawable(null)
isetImageBitmap(null)
W przeciwnym razie powinien działać poprawnie, zaczynając od wersji Androida. Zgodnie z kodem Androida i zgodnie z moimi testami, myślę, że powinien być bezpieczny w użyciu
setImageResource(0)
z Android API 22 (5.1). Możesz zobaczyć kod Androida API 22 vs API 21 tutajźródło
Napotkałem ten sam problem, zmieniłem kolor tła widoku na kolor tła układu, możesz to zrobić w następujący sposób:
// następnie ustaw obraz
źródło
Próbowałem też usunąć Image ImageView przy użyciu,
ImageView.setImageRessource(0)
ale to nie działało dla mnie.Na szczęście dostałem tę wiadomość w dziennikach:
Powiedzmy, że
layoutmanager
masz instancję układu, niż musisz to zrobić:źródło
Czy mogę po prostu wskazać, co wszyscy staracie się ustalić, i gdzie jest to oczekiwane.
nie powinieneś robić następujących rzeczy?
źródło