Android Scroll往相反方向原因剖析
以前一直有个困惑,为什么mSrcollX=100的时候,图像不是往右移动,而是左呢?
以前有过一个理解现在看来也是跟个小学生似的,现在把这个新的理解记录下来。
关于滑动,先要理解三个事物:
- View:控件,滑动是不会改变view的位置的。
- Canvas:画布,View要显示的东西也全画在Canvas上。
- window:窗口,画布那么大,控件要显示画布的那一部分。
这三者的关系,一个控件是现实画布中的内容的,这个画布是无限大的,但是控件却是有限的。这时候窗口就来解决控件到底要显示画布的那一部分的问题了。意思就是:窗口开在画布的哪里,控件就显示哪里,并且窗口是可以移动的,理解好这点很重要。
那么接下来就来说明,为什么mScroll为正的时候,图像往后跑了。当mSrcoll=100时,实际上是吧窗口往右移动100,往右是毫无疑问的,不过重点是移动的是窗口,窗口,窗口(重要的事情);那么发挥一下你的想象力,相对于画布以及窗口两个物体来说,窗口往右移动,那么以窗口为参照物,画布是往什么方向移动的?答案:左。答案出来了。这里不需要去想控件是什么存在,她就固定在那里,窗口能看到什么它就显示什么。
画个图加深理解:
有理解错的地方还望指点一下。