Android - 获取视图的可见区域?

2022-09-01 17:46:19

假设我有一个Android,它被另一个.例如,假设遮罩视图的中心有一个透明的矩形“窗口”,而我的视图位于窗口下方的中心,并且具有大于窗口尺寸的尺寸。在这种情况下,视图的某些矩形部分将可见,其余部分将被遮罩遮挡。ViewView

所以我的问题是,有没有直接的方法可以在没有任何访问遮罩视图本身的情况下检索可见区域的位置和尺寸(所以不知道遮罩的“窗口”本身有多大)?

我尝试调用 ,这听起来很有希望,但这似乎只返回视图的布局矩形,而不是实际可见的矩形。getLocalVisibleRect()


答案 1

这已经很晚了,但我怀疑这符合你的意愿。getGlobalVisibleRect


答案 2

我使用方法来确定视图是否部分可见,以确定软键盘是否打开。您可以尝试一下。getWindowVisibleDisplayFrame

Rect r = new Rect();
// r will be populated with the coordinates of     your view
// that area still visible.
rootView.getWindowVisibleDisplayFrame(r);