Home » Android » user interface – How can I check if a view is visible or not in Android?

user interface – How can I check if a view is visible or not in Android?

Posted by: admin March 10, 2020 Leave a comment


I set visibility to invisible like this on Android:


And then to make it visible:


Now I don’t know if myImageView is visible or not, how can I check it like this:

if (myImageView IS VISIBLE) {
    Do something
} else {
    Do something else

How can I do that? What do I have to write within the brackets?

How to&Answers:

Although View.getVisibility() does get the visibility, its not a simple true/false. A view can have its visibility set to one of three things.

The view is visible.

The view is invisible, but any spacing it would normally take up will still be used. Its “invisible”

The view is gone, you can’t see it and it doesn’t take up the “spot”.

So to answer your question, you’re looking for:

if (myImageView.getVisibility() == View.VISIBLE) {
    // Its visible
} else {
    // Either gone or invisible


Or you could simply use



If the image is part of the layout it might be “View.VISIBLE” but that doesn’t mean it’s within the confines of the visible screen. If that’s what you’re after; this will work:

Rect scrollBounds = new Rect();
if (imageView.getLocalVisibleRect(scrollBounds)) {
    // imageView is within the visible window
} else {
    // imageView is not within the visible window


You’d use the corresponding method getVisibility(). Method names prefixed with ‘get’ and ‘set’ are Java’s convention for representing properties. Some language have actual language constructs for properties but Java isn’t one of them. So when you see something labeled ‘setX’, you can be 99% certain there’s a corresponding ‘getX’ that will tell you the value.