android中scrollTo和scrollBy的理解

protected   int  mScrollX;    //该视图内容相当于视图起始坐标的偏移量   , X轴 方向

protected   int  mScrollY;    //该视图内容相当于视图起始坐标的偏移量   , Y轴方向

偏移量表示的就是相对位置,而不是针对起始点的绝对位置。

就像在路上的一个点,它距起始点的距离就是绝对长度;而距中途某个点的距离就是相对于中途这个点的偏移量。

简单点来比喻:

你要从北京去广州,过了郑州100公里 
郑州就是基地址,100是偏移!

public void scrollTo (int x, int y)

在当前视图内容偏移至(x , y)坐标处,即显示(可视)区域位于(x , y)坐标

  1. public   void  scrollTo( int  x,  int  y) {
  2. //偏移位置发生了改变
  3. if  (mScrollX != x || mScrollY != y) {
  4. int  oldX = mScrollX;
  5. int  oldY = mScrollY;
  6. mScrollX = x;  //赋新值,保存当前便宜量
  7. mScrollY = y;
  8. //回调onScrollChanged方法
  9. onScrollChanged(mScrollX, mScrollY, oldX, oldY);
  10. if  (!awakenScrollBars()) {
  11. invalidate();  //一般都引起重绘
  12. }
  13. }
  14. }

public void  scrollBy (int x, int y)

在当前视图内容继续偏移(x , y)个单位,显示(可视)区域也跟着偏移(x,y)个单位

    1. // mScrollX 与 mScrollY 代表我们当前偏移的位置 , 在当前位置继续偏移(x ,y)个单位
    2. public   void  scrollBy( int  x,  int  y) {
    3. scrollTo(mScrollX + x, mScrollY + y);
    4. }
时间: 2024-10-02 08:08:46

android中scrollTo和scrollBy的理解的相关文章

android中padding和margin的理解

在android安排控件布局时,padding和margin经常被用到. 其具体解释可以通过一张图展现,如下, 两个属性表示的意义与web编程相同. 深入理解: padding约束的是控件或布局显示的内容距离边框的距离,沿垂直边框向内压缩,padding越大,内容显示控件越小: margin这是沿垂直边框向外延伸的距离, 它的意思就是给控件加了一个一定距离的空白边,显示效果只与值大小正负相关,与其他元素边界无关. 值得注意的是,padding值的范围[0,任意正数](默认为0),而margin的

Android中BindService方式使用的理解

Android中BindService方式使用的理解 - 唯一小神 - 博客园 最近学习了一下Android里面的Service的应用,在BindService部分小卡了一下,主要是开始没有彻底理解为什么要这么实现. BindService和Started Service都是Service,有什么地方不一样呢: 1. Started Service中使用StartService()方法来进行方法的调用,调用者和服务之间没有联系,即使调用者退出了,服务依然在进行[onCreate()-? >onS

Android中dispatchTouchEvent, onInterceptTouchEvent, onTouchEvent的理解

[转]http://blog.csdn.net/guitk/article/details/7057155 onInterceptTouchEvent用于改变事件的传递方向.决定传递方向的是返回值,返回为false时事件会传递给子控件,返回值为true时事件会传递给当前控件的onTouchEvent(),这就是所谓的Intercept(拦截). [tisa ps:正确的使用方法是,在此方法内仅判断事件是否需要拦截,然后返回.即便需要拦截也应该直接返回true,然后由onTouchEvent方法进

Android中对Handle机制的理解

一.重要參考资料 [參考资料] 眼下来看,以下的几个网址中的内容质量比較不错.基本不须要再读别的网址了. 1.android消息机制一 http://xtfncel.javaeye.com/blog/663517 Android消息机制(一) 一.    角色描写叙述 1.Looper: 一个线程能够产生一个Looper对象.由它来管理此线程里的Message Queue(消息队列). 2.Handler: 你能够构造Handler对象来与Looper沟通.以便push新消息到Message Q

Android中的context的学习理解

Android中Context的学习理解Context是一个抽象基类,通过它getResuources.getAssets and start 其他组件(Activity,Service,broadCast,getSystemService),可以这样理解:Context提供了一个运行环境for App, then app 可以访问资源,才能完成与其他组件,服务的交互,Context定义了一套基本的功能接口or一套规范 //todo

【转】Android中BindService方式使用的理解

原文网址:http://www.cnblogs.com/onlylittlegod/archive/2011/05/15/2046652.html 最近学习了一下Android里面的Service的应用,在BindService部分小卡了一下,主要是开始没有彻底理解为什么要这么实现. BindService和Started Service都是Service,有什么地方不一样呢: 1. Started Service中使用StartService()方法来进行方法的调用,调用者和服务之间没有联系,

Android 中AIDL的使用与理解

AIDL的使用: 最常见的aidl的使用就是Service的跨进程通信了,那么我们就写一个Activity和Service的跨进程通信吧. 首先,我们就在AS里面新建一个aidl文件(ps:现在AS建aidl不要求和java包名相同了): package aidl; interface IMyInterface { String getInfor(String s); } 可以看到,在这里面我们就一个方法getInfor(String s),接受一个字符串参数,然后返回一个字符串,恩,相当的简单

谈谈我对Android中的消息机制的理解之Handler,Looper和MessageQueue的解释

Handler的作用是:发送Message和处理Message,handler发送的Message其实就是发送给自己的对象进行处理,所以谁发送就是谁处理,但是这个绝对有意义,以为这样我们就可以通过Handler将消息的处理从一个线程转到另一个线程了,这个Message几经转手之后,处理它的对象虽然是同一个,但是处理它的线程就变了,变成了创建Handler对象的线程,而不是产生Message对象的线程(当然,这个两个线程可能是一个,但是这样使用handler就是第二个目的了),使用handler的

Android中常用但又难以理解的对象

1.Context Activity是Context一个非直接子类 Context到底代表什么涵义呢?