关于view.getScrollX()和view.getScrollY()以及OnGestureListener.onScroll()中distanceX,distanceY的说明

关于view.getScrollX()和view.getScrollY()首先来看源码说明:

view.getScrollX(): Return the scrolled left position of this view. This is the left edge of the displayed part of your view. You do not need to draw any pixels farther left, since those are outside of the frame of your view on screen.

翻译一下,就是说返回滚动完之后view还显示在屏幕上的左边边缘的点的坐标,你不需要去画出这个点,因为它们都超出了view在屏幕上的布局。(这里的滚动只是滚动view的内容,view本身不滚动)。

在经过代码检测之后得出坐标原点在你想滚动的view初始化的时候的左上方,这里要注意一点,这里的Y轴是朝下的。如果你有认真看你能心中勾画出一幅坐标图,如果view向左移动,那么view的内容将越过view的边界,而显示在屏幕上的左边边缘的点X坐标即是view.getScrollX(),脑补一下不难得出这个值是大于0的,如果向右滑动的话则是小于0.

view.getScrollY():和view.getScrollX()一样,稍微要注意的就是Y轴坐标是朝下的,所以向上滑动的时候getScrollY()的值应该是大于0的,向下滑的时候是小于0的。

distanceX:这个看源码说明就很容易知道:The distance along the X axis that has been scrolled since the last call to onScroll. This is NOT the distance betweene1 ande2.

返回的是最后一次调用onScroll()和当前调用onScroll()中间X滚动的距离,这里不是一个绝对值,如果向左滑动则为正值,向右滑动则为负值,可以理解为上一次X点的坐标减去这次X点的左标。

distanceY:和上面一样,向上滑值为正,向下滑值为负,注意Y轴的方向。

Scroller.getFinalX(),Scroller.getFinalY():返回所在view在scroll完成之后相对于初始化时位置在X轴方向和Y轴方向的偏移量的值。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值