• Android中滑屏实现----手把手教你如何实现触摸滑屏以及Scroller类详解 (强烈推荐军哥的博客,大家多跟他学习学习)


    为什么感觉现在CSDN的博客编辑器也有点叛逆呢,总是不听话,看不到鼠标的位置,还有经常粘贴一些外面的文章进来的时候总是很难编辑。好了,不扯远了,不管难不难都要写吖。呵呵。

    学习和使用Scroller是在很早之前了,那时候学习和使用她我只能说还处于模糊期,因为我当时是带着神奇的眼光去审视这个类的,所以当时总无法理解。只是知道个大概的意思然后知道怎么使用(糊涂的用),现在终于明白了(什么也无法说明,只能说明我很笨,T_T),所以很想跟大家来解释一下,一方面加深自己的理解,另一方面服务那些仍然无法理解她的大众。

    大家可以先看其他前辈的关于Scroller的文章,不管是API还是使用示例。

    1.android 中文 api (64) —— Scroller

    2.Android Scroller简单用法

    3.Android Scroller类的详细分析

    4.Android中滑屏实现----手把手教你如何实现触摸滑屏以及Scroller类详解 (强烈推荐军哥的博客,大家多跟他学习学习)

    就不多推荐了,其他的大家可以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就是充当一个距离计算器,没有什么神奇的,就是一堆的数学运算。


     
     
  • 相关阅读:
    Eclipse中显示行号
    PeerSim中一些自己的理解
    迄今为止看过的书籍
    Java程序跨平台运行
    Linux下在PeerSim中运行Chord源代码
    在Eclipse中运行PeerSim的例子
    Ubuntu下安装Java
    Eclipse中自动调整代码
    Eclipse中Outline里各种图标的含义
    Java是如何运行的
  • 原文地址:https://www.cnblogs.com/james1207/p/3310751.html
Copyright © 2020-2023  润新知