Suppose I have an Android View
that is being partially masked by another View
. For instance, imagine that the masking view has a transparent rectangular "window" in the center of it, and my view is centered beneath the window and possessing dimensions that are larger than the dimensions of the window. In such a case, some rectangular portion of the view will be visible, with the rest being obscured by the mask.
So my question is, is there any straightforward way to retrive the position and dimensions of the visible area without having any access to the masking view itself (so without knowing how big the mask's "window" itself is)?
I tried calling getLocalVisibleRect()
, which sounded promising, but that only seems to return the view's layout rectangle and not the rectangle that is actually visible.
This is pretty late to the game, but I suspect that getGlobalVisibleRect
does what you want.
I have used getWindowVisibleDisplayFrame
method to determine if view is partially visible or not to determine if a soft keyboard is open. You can try it out.
Rect r = new Rect();
// r will be populated with the coordinates of your view
// that area still visible.
rootView.getWindowVisibleDisplayFrame(r);
Does this not work: http://developer.android.com/reference/android/view/View.html#getDrawingRect(android.graphics.Rect)
The documentation says that it does what you want.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With