Ответ 1
Из JavaDoc getGlobalVisibleRect:
/**
* If some part of this view is not clipped by any of its parents, then
* return that area in r in global (root) coordinates. To convert r to local
* coordinates (without taking possible View rotations into account), offset
* it by -globalOffset (e.g. r.offset(-globalOffset.x, -globalOffset.y)).
* If the view is completely clipped or translated out, return false.
*
* @param r If true is returned, r holds the global coordinates of the
* visible portion of this view.
* @param globalOffset If true is returned, globalOffset holds the dx,dy
* between this view and its root. globalOffet may be null.
* @return true if r is non-empty (i.e. part of the view is visible at the
* root level.
*/
getLocalVisibleRect вызывает getGlobalVisibleRect, а затем делает его локальным, как было предложено:
r.offset(-offset.x, -offset.y); // make r local`
Итак:
- Он не возвращает Rectangle, он возвращает логическое значение. Но он может задавать параметры прямоугольника, который вы передаете, и это должен быть прямоугольник android.graphics.Rect;
- Прямоугольник r будет заполнен локальными координатами;
- Я не уверен, но я думаю, что это то же самое для видимых и невидимых представлений, в то время как оно должно возвращать false для представлений с
visibility="gone"