当前位置:操作系统 > 安卓/Android >>

Android复习之Scroller

为什么感觉现在CSDN的博客编辑器也有点叛逆呢,总是不听话,看不到鼠标的位置,还有经常粘贴一些外面的文章进来的时候总是很难编辑。好了,不扯远了,不管难不难都要写吖。呵呵。
 
学习和使用Scroller是在很早之前了,那时候学习和使用她我只能说还处于模糊期,因为我当时是带着神奇的眼光去审视这个类的,所以当时总无法理解。只是知道个大概的意思然后知道怎么使用(糊涂的用),现在终于明白了(什么也无法说明,只能说明我很笨,T_T),所以很想跟大家来解释一下,一方面加深自己的理解,另一方面服务那些仍然无法理解她的大众。
 
大家可以先看其他前辈的关于Scroller的文章,不管是API还是使用示例。
 
 
 
就不多推荐了,其他的大家可以Google或Baidu一下,很多,多看几篇理论之后一定要亲自动手去写代码实践,更改写参数然后运行看下效果,那样最好了,能够立刻明白是参数都是怎么个意思。
现在来说下我自己的理解:
 
其实很简单,Scroller就是一个“计算器”,是什么计算器呢,她是帮我们计算从你给定的点(咱们编程说的点当然是坐标了哈)到你需要滚动到的目标点在给定时间内每次的偏移量,我举个最简单的例子,假如我们想从A(0, 0)点花100毫秒的时间移动到B(200,100)点,则Scroller会帮我们算好,之后的每1毫秒将在X方向上移动2个像素,Y方向上移动1个像素,当然正值或者负值代表的方向嘛,这里不说了,大家直接运行,看看效果即可知道。我们只需要调用mScroller.computeScrollOffset()即可判断Scroller滚动到目标位置了没,返回true说明还没有,这时候我们可以调用mScroller.getCurrX(), mScroller.getCurrY()获取我们最新的X,Y轴的位置,其他相关的API大家可以看android 中文 api (64) —— Scroller 一般我们用的最好就是上面我说的三个了,一般在容器类的computeScroll()方法中这么用。
 
@Override
public void computeScroll() { 
           if (mScroller.computeScrollOffset()) { 
                    // mScrollX = mScroller.getCurrX();
 
                    // Log.i(TAG. "mScrollX is "+mScrollX);
 
                    // 记得这里千万不要为了做打印工作调用一次getCurrX得到mScrollX然后在下面的scrollTo再次调用getCurrX取值,每次取值Scroller都会计算一次,也就是时间向后推移一毫秒。
                     scrollTo(mScroller.getCurrX(), 0); 
                     postInvalidate(); 
           } 
 
 
 
 
我再次强调一遍,其实Scroller就是充当一个距离计算器,没有什么神奇的,就是一堆的数学运算。
 
补充:移动开发 , Android ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,