我怎样才能检查一个视图是否可见或不在Android?

我在Android上设置了隐形效果:

 myImageView.setVisibility(View.INVISIBLE); 

然后使其可见:

 myImageView.setVisibility(View.VISIBLE); 

现在我不知道如果myImageView是否可见,我怎么能这样检查它:

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

我怎样才能做到这一点? 括号内写什么?

虽然View.getVisibility()确实获得了可见性,但它不是一个简单的真/假。 视图可以将其可见性设置为三件事之一。

View.VISIBLE视图是可见的。

View.INVISIBLE视图是不可见的,但是它通常会占用的空间仍将被使用。 其“隐形”

View.GONE视图消失了,你看不到它,它不占用“点”。

所以要回答你的问题,你正在寻找:

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

或者你可以简单地使用

 View.isShown() 

如果图像是布局的一部分,它可能是“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 } 

您将使用相应的方法getVisibility() 。 以“get”和“set”为前缀的方法名称是用于表示属性的Java约定。 有些语言有属性的实际语言结构,但Java不是其中之一。 所以当你看到标有'setX'的东西时,你可以肯定有99%的确定有一个相应的'getX'来告诉你这个值。