android关于Scroller与GestureDetector实现滚动的效果

本文介绍了如何使用Scroller和GestureDetector在Android中实现滚动效果。Scroller是一个辅助类,用于实现View的平滑滚动,GestureDetector则用于处理用户的触摸手势。通过结合这两个类,可以创建出响应用户手势的滚动视图。文中详细讲解了Scroller的相关方法,如startScroll、computeScrollOffset等,并给出了自定义手势监听类CustomGestureListener的实现,用于处理滑动手势。
摘要由CSDN通过智能技术生成

    Scroller类是实现View能够滚动的一个帮助类。效果如下所示:

                       

    要实现以上的效果还要一个类就是GestureDetector类,这个类是实现手势类。

    

    现在我们来探讨一下这两个类。

    首先说说Scroller类,定义对象private Scroller mScroller = new Scroller(context);

               相关方法:mScroller.getCurrX()  该方法为获取当前水平滚动的位置

                                   mScroller.getCurrY()     该方法为获取当前竖直滚动的位置

                                   mScroller.getFinalX()    该方法为获取最终停止的水平位置

                                   mScroller.getFinalY()    该方法为获取最终停止的竖直位置

                                   mScroller.setFinalX(int newX)    该方法设置最终停留水平位置,没有动画效果,直接到最终位置

                                   mScroller.setFinalY(int newY)    该方法设置最终停留竖直位置,没有动画效果,直接到最终位置

                                   mScroller.startScroll(int startX, int startY, int dx, int dy)    该方法为开始滚动,startX,startY为开始滚动的位置,dx,dy为滚动的偏移量,默认完成时间为250ms

                                   mScroller.startScroll(int startX, int startY, int dx, int dy, int duration)  该方法同上一方法,但多一个参数duration, 设置完成时间

                                   mScroller.computeScrollOffset()    方法返回值为boolean类型,为true表示滚动尚未完成,false表示滚动已经完成


    我们定义方法 

                           public void viewScrollTo(int x, int y) {    //滚动到位置(x,y)

                                  mScroller.startScroll(mScroller.getFinalX(), mScroller.getFinalY(), x - mScroller.getFinalX(), y-mScroller.getFinalY());

                                  invalidate(); //刷新View,确保调用方法public void computeScroll()

                           }


                           public void

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值