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. }

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

  1. android中对线程池的理解与使用

    前段时间有幸接到腾讯上海分公司的 Android开发面试,虽然最后一轮被毙了.但还是得总结一下自己在android开发中的一些盲点,最让我尴尬的是面试官问我几个android中线程池的使用与理解..哎 ...

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

    原文网址:http://www.cnblogs.com/onlylittlegod/archive/2011/05/15/2046652.html 最近学习了一下Android里面的Service的应 ...

  3. Android中对Handle机制的理解

    一.重要參考资料  [參考资料]     眼下来看,以下的几个网址中的内容质量比較不错.基本不须要再读别的网址了. 1.android消息机制一     http://xtfncel.javaeye. ...

  4. Android中Adapter和Bridge模式理解和应用

    一 Adapter模式 意图: 将一个类的接口转换成客户希望的另外一个接口. Adapter模式使得原本由于接口不兼容而不能在一起工作的那些类可以在一起工作. 适用性: 使用一个已存在的类,而它的接口 ...

  5. 谈谈对Android中的消息机制的理解

    Android中的消息机制主要由Handler.MessageQueue.Looper三个类组成,他们的主要作用是 Handler负责发送.处理Message MessageQueue负责维护Mess ...

  6. android中LayoutParams设置参数的理解

    1. 有这样的一个应用场景:有一个linearLayout控件在其中布局一个textView控件 首先,创建线性布局对象 LinearLayout layout = new LinearLayout( ...

  7. Android 中AIDL的使用与理解

    AIDL的使用: 最常见的aidl的使用就是Service的跨进程通信了,那么我们就写一个Activity和Service的跨进程通信吧. 首先,我们就在AS里面新建一个aidl文件(ps:现在AS建 ...

  8. Android中异步类AsyncTask的理解

    这里有两种解释的方法,各有侧重点: 第一种解释: Async Task 简介:AsyncTask的特点是任务在主线程之外运行,而回调方法是在主线程中执行,这就有效地避免了使用Handler带来的麻烦  ...

  9. (七)Android中AIDL的应用与理解

    一.跨应用启动Service Intent serviceIntent=new Intent();serviceIntent.setComponent(new ComponentName(" ...

随机推荐

  1. 基础学习day11--多线程一线程的创建,运行,同步和锁

    一.线程基本概述 1.1.进程和线程 进程:一个应用程序一般都是一个进程,正在进行的程序 每一个进程最少都有一个线程,都有一个执行顺序,该顺序是一个执行路径或者一个控制单元 线程:进程中一个独立的控制 ...

  2. mac os x使用Git简易入门教程

    具体如下: 1, 首先要了解什么是Git. 简而言之,Git是一个分布式的代码版本管理工具.类似的常用工具还有SVN,CVS. 概念了解参见:http://baike.baidu.com/subvie ...

  3. Sencha Cmd是什么

    Sencha Cmd的简介 ~~~~~~~~~~~~~~~~~~~~~~~ Sencha cmd 是一个跨平台的命令行工具,它从你应用程序的新创建到部署入产品中的整个生命周期都提供了许多自动化的执行任 ...

  4. struts2.3.24 + spring4.1.6 + hibernate4.3.11+ mysql5.5.25开发环境搭建及相关说明

    一.目标 1.搭建传统的ssh开发环境,并成功运行(插入.查询) 2.了解c3p0连接池相关配置 3.了解验证hibernate的二级缓存,并验证 4.了解spring事物配置,并验证 5.了解spr ...

  5. .bat脚本基本命令语法

    目录批处理的常见命令(未列举的命令还比较多,请查阅帮助信息)     1.REM 和 ::     2.ECHO 和 @     3.PAUSE     4.ERRORLEVEL     5.TITL ...

  6. 关于String StringBuffer StringBuilder

    0. String对象的创建       1.关于类对象的创建,很普通的一种方式就是利用构造器,String类也不例外:String s=new String("Hello world&qu ...

  7. Effective Java 02 Consider a builder when faced with many constructor parameters

    Advantage It simulates named optional parameters which is easily used to client API. Detect the inva ...

  8. c# 反射简单使用

    类库dll,将生成ExampleLib.dll文件 namespace ExampleLib { public class Example { public static string FuncA() ...

  9. Git 升级与基础适用

    Git 升级 老方法 yum install git 目前centos6安装的 git 版本为1.7相对于 github 以及自己安装的 git 服务器都相对比较老,所以一般不适用此方法安装) 编译安 ...

  10. splice()函数,'SPLICE_F_MOVE' 'SPLICE_F_NONBLOCK' 'SPLICE_F_MORE' undeclared

    1.编译含有splice()函数的程序时出现,'SPLICE_F_MOVE'  undeclared,'SPLICE_F_NONBLOCK' ‘SPLICE_F_MORE' 也是一样undeclare ...