如何使用 onScroll 和 GestureDetector 让视图跟随我的手指 - Android
我有一个relativelayout,中间有一个textview。我已经使用 SimpleOnGestureListener() 检测 onFling、onDown 和 onScroll 事件。
我希望 TextView 跟随我的手指在屏幕上移动(可以只是在 x 轴上),当我抬起手指时,动画要么离开屏幕,要么回到中间(取决于我已经移动了多远)移动了它)。
I have a RelativeLayout with a TextView in the middle. I've got it to detect onFling, onDown, and onScroll events using SimpleOnGestureListener().
I would like the TextView to follow my finger around the screen (can be just in the x axis), and when I lift my finger for it so animate either out of the screen or back to the middle (depending on how far I've moved it).
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这就是我在这些情况下通常所做的。
首先,您的 onScroll 方法应如下所示:
我们将
leftMargin
和topMargin
修改为相当于滚动距离的量。接下来,要使文本视图以动画方式返回到其原始位置,您需要在事件为
ACTION_UP
或ACTION_CANCEL
时执行此操作:然后在 snapBack 方法中,我们以动画方式返回文本视图:
应该可以!您可以修改
endValueX
和endValueY
变量来控制当您松开手指时文本视图返回的位置。This is what I normally do in these cases.
First of all, your onScroll method should look something like this:
We are modifying the
leftMargin
andtopMargin
an amount equivalent to the distance that has been scrolled.Next, to make the text view animate back to its original position you need to do so when the the event is
ACTION_UP
orACTION_CANCEL
:Then in the snapBack method we animate back the text view:
And that should do! You can modify the
endValueX
andendValueY
variables to control where the text view goes back when you lift your finger.