码迷,mamicode.com
首页 > 移动开发 > 详细

Android View Scroller

时间:2014-12-15 15:24:41      阅读:175      评论:0      收藏:0      [点我收藏+]

标签:android   style   blog   ar   color   sp   on   div   art   

在继承View控件重写控件功能时,时常会对控件内容进行滚动,那么就需要调用View内容移动的两个方法之一:
View.scrollBy(int x, int y) --> 内容平滑地滚动到目标坐标(可看的移动效果)
View.scrollTo(int x, int y) --> 内容马上滚动到目标坐标(瞬移!?)


当滚动时,还需要判断滚动的内容是否超过显示界限,此时要调用到两个方法来获取滚动的距离(这里需要注意的是,View是以左上角为坐标原点(0,0)),
方法:View.getScrollX() -->获取水平坐标移动距离
      View.getScrollY() -->获取垂直坐标移动距离
如:
1.手指向右滑动,而内容向左滚动,View.getScrollX()得到的是负值
2.手指向左滑动,而内容向右滚动,View.getScrollX()得到的是正值
3.手指向下滑动,而内容向上滚动,View.getScrollY()得到的是负值
4.手指向上滑动,而内容向下滚动,View.getScrollY()得到的是正值
简而言之,就是手指滑动的方向和内容滚动的方向相反,参考ListView 和 HorizontalScrollView 的界面效果便知
在获取到值后,可以通过(new Scroller()).startScroll(int startX, int startY, int dx, int dy)方法将内容滚动到适当的位置
在View的重写方法中进行Scroller滚动响应:

@Override
    public void computeScroll() {
        if (scroller.computeScrollOffset()) {
            // 调用这个下面的条件是由于scroller调用了滑动从而使它激发
            scrollTo(scroller.getCurrX(), scroller.getCurrY());
            invalidate();
            return;
        }
        super.computeScroll();
    }

 



   

Android View Scroller

标签:android   style   blog   ar   color   sp   on   div   art   

原文地址:http://www.cnblogs.com/rfheh/p/4164842.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!