How to clear an ImageView in Android?
I am reusing ImageView
s for my displays, but at some point I don't have values to put it.
So how to clear an ImageView
in Android?
I've tried:
mPhotoView.invalidate();
mPhotoView.setImageBitmap(null);
None of them have cleared the view, it still shows previous image.
I used to do it with the dennis.sheppard solution:
viewToUse.setImageResource(0);
it works but it is not documented so it isn't really clear if it effects something else in the view (you can check the ImageView code if you like, i didn't).
I think the best solution is:
viewToUse.setImageResource(android.R.color.transparent);
I like this solution the most cause there isn't anything tricky in reverting the state and it's also clear what it is doing.
I had a similar problem, where I needed to basically remove ImageViews from the screen completely. Some of the answers here led me in the right direction, but ultimately calling setImageDrawable() worked for me:
imgView.setImageDrawable(null);
(As mentioned in the comment, such usage is documented in the official docs: ImageView#setImageDrawable.)
I know this is old, but I was able to accomplish this with
viewToUse.setImageResource(0);
Doesn't seem like it should work, but I tried it on a whim, and it worked perfectly.
It sounds like what you want is a default image to set your ImageView to when it's not displaying a different image. This is how the Contacts application does it:
if (photoId == 0) {
viewToUse.setImageResource(R.drawable.ic_contact_list_picture);
} else {
// ... here is where they set an actual image ...
}