Как я могу проверить, видимо ли это вид или нет в Android?

Я установил visibility на невидимое на Android:

myImageView.setVisibility(View.INVISIBLE);

И затем, чтобы сделать его видимым:

myImageView.setVisibility(View.VISIBLE);

Теперь я не знаю, видимо ли myImageView или нет, как я могу проверить его следующим образом:

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

Как я могу это сделать? Что мне нужно написать в скобках?

Ответ 1

Хотя View.getVisibility() действительно получает видимость, это не просто true/false. Представление может иметь видимость для одной из трех вещей.

View.VISIBLE Вид виден.

View.INVISIBLE Вид невидим, но любые интервалы, которые он обычно занимает, будут по-прежнему использоваться. Его "невидимый"

View.GONE Вид ушел, вы не можете его увидеть, и он не занимает "пятно".

Итак, чтобы ответить на ваш вопрос, вы ищете:

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

Ответ 2

Или вы можете просто использовать

View.isShown()

Ответ 3

Если изображение является частью макета, оно может быть "View.VISIBLE", но это не значит, что оно находится в пределах видимого экрана. Если это то, что вам нужно; это будет работать:

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

Ответ 4

Вы используете соответствующий метод getVisibility(). Имена методов с префиксом "get" и "set" - это Java-соглашение для представления свойств. Некоторые языки имеют реальные языковые конструкции для свойств, но Java не является одним из них. Поэтому, когда вы видите что-то, помеченное как "setX", вы можете быть на 99% уверены, что есть соответствующий "getX", который скажет вам значение.