在继承View控件重写控件功能时,时常会对控件内容进行滚动,那么就需要调用View内容移动的两个方法之一:
View.scrollBy(int x, int y) --> 内容平滑地滚动到目标坐标(可看的移动效果)
View.scrollTo(int x, int y) --> 内容马上滚动到目标坐标(瞬移!?)

当滚动时,还需要判断滚动的内容是否超过显示界限,此时要调用到两个方法来获取滚动的距离(这里需要注意的是,View是以左上角为坐标原点(0,0)),
方法:View.getScrollX() -->获取水平坐标移动距离
      View.getScrollY() -->获取垂直坐标移动距离
如:
1.手指向右滑动,而内容向左滚动,View.getScrollX()得到的是负值
2.手指向左滑动,而内容向右滚动,View.getScrollX()得到的是正值
3.手指向下滑动,而内容向上滚动,View.getScrollY()得到的是负值
4.手指向上滑动,而内容向下滚动,View.getScrollY()得到的是正值
简而言之,就是手指滑动的方向和内容滚动的方向相反,参考ListView 和 HorizontalScrollView 的界面效果便知
在获取到值后,可以通过(new Scroller()).startScroll(int startX, int startY, int dx, int dy)方法将内容滚动到适当的位置
在View的重写方法中进行Scroller滚动响应:

@Overridepublic void computeScroll() {if (scroller.computeScrollOffset()) {// 调用这个下面的条件是由于scroller调用了滑动从而使它激发
            scrollTo(scroller.getCurrX(), scroller.getCurrY());invalidate();return;}super.computeScroll();}

转载于:https://www.cnblogs.com/rfheh/p/4164842.html

Android View Scroller相关推荐

  1. Android View体系(十)自定义组合控件

    相关文章 Android View体系(一)视图坐标系 Android View体系(二)实现View滑动的六种方法 Android View体系(三)属性动画 Android View体系(四)从源 ...

  2. Android 使用Scroller实现绚丽的ListView左右滑动删除Item效果

    本文出自xiaanming的博客(http://blog.csdn.net/xiaanming/article/details/17539199) 我在上一篇文章中Android 带你从源码的角度解析 ...

  3. Android View体系(五)从源码解析View的事件分发机制

    Android View体系(一)视图坐标系 Android View体系(二)实现View滑动的六种方法 Android View体系(三)属性动画 Android View体系(四)从源码解析Sc ...

  4. [原] Android中Scroller类的分析

    今天看了一下项目中用到的ViewFlow控件,想弄明白其工作原理.从头开始分析,卡在"滚动"这儿了. 做android也快两年了,连最基本的滚动都不熟悉,真是惭愧...遂网上找资料 ...

  5. Android View事件机制 21问21答

    1.View的坐标参数 主要有哪些?分别有什么注意的要点? 答:Left,Right,top,Bottom 注意这4个值其实就是 view 和 他的父控件的 相对坐标值. 并非是距离屏幕左上角的绝对值 ...

  6. android scroller,深入理解Android中Scroller的滚动原理

    View的平滑滚动效果 什么是实现View的平滑滚动效果呢,举个简单的例子,一个View从在我们指定的时间内从一个位置滚动到另外一个位置,我们利用Scroller类可以实现匀速滚动,可以先加速后减速, ...

  7. Android的Scroller介绍

    以提供的起始点和将要滑动的距离开始滚动.滚动会使用缺省值250ms作为持续时间. 参数 startX 水平方向滚动的偏移值,以像素为单位.负值表明滚动将向左滚动 startY 垂直方向滚动的偏移值,以 ...

  8. Android之Scroller详解讲解-真正了解滚动处理

    1.Scroller是什么? Scroller本身不会去移动View,它是一个移动计算辅助类,用于跟踪控件滑动的轨迹,只相当于一个滚动轨迹的记录工具,最终还是通过View的scrollTo,scrol ...

  9. android view交替动画,Android View原理(View树遍历,View重绘,View动画)

    一.屏幕绘图基础 Android中的GUI系统是客户端和服务端配合的窗口系统,即后台运行了一个绘制服务,每个应用程序都是该服务端的一个客户端,当客户端需要绘制时,首先请求服务端创建一个窗口,然后在窗口 ...

  10. Android View(一)——View的基础知识

    目录 一.View的基础知识 1.什么是View 2.View的位置参数 3.MotionEvent 4. TouchSlop 5. VelocityTracker 6. GestureDetecto ...

最新文章

  1. python_控制台输出带颜色的文字方法
  2. 在Windows7中与虚拟机实现远程桌面连接
  3. Linux系统下的DDOS***防范
  4. 20110609 搭域控,布线,设计网络,杂事一堆啊
  5. “相对论“ 2019-07-10
  6. javaweb登录系统账号密码验证等
  7. 租网站服务器安全吗,租用的服务器安全吗
  8. Planning Strategy 和Requirement type的思考
  9. Linux 上 docker 安装 oracle-xe-11g
  10. HandlerInterceptor 处理器拦截器的用法
  11. pb 执行存储过程带参数_SQL高级知识——存储过程
  12. PHPExcel 在LINUX环境中导出乱码的问题解决
  13. 3.1 Zabbix企业级分布式监控系统 --- zabbix 安装
  14. Linux和UNIX操作系统的关系及区别(详解)
  15. 使用visual studio code 编写小程序代码
  16. 为什么在12306买火车票要装根证书?
  17. dtft变换的性质_DTFT及其性质
  18. freemark导出word全过程 + 图片不显示问题
  19. 搜狗输入法——自定义短语设置
  20. 【Leetcode】精选算法top200道(二)

热门文章

  1. 【字符编码】Java字符编码详细解答及问题探讨
  2. 最近碰到的一些 SSL 问题记录
  3. 一个迷茫的 大学生自学Linux的开始
  4. 艾伟:微软是在向谁“献刀”
  5. mysql 遍历二叉树_数据结构-二叉树遍历
  6. [转载]Spring Cloud微服务Sentinel+Apollo限流、熔断实战
  7. 日语输入法电脑版_哪个日语输入法比较好用,日语输入法下载及使用教程
  8. 【渝粤教育】电大中专计算机职业素养 (7)作业 题库
  9. [渝粤教育] 西南科技大学 英语语法2 在线考试复习资料
  10. 【渝粤教育】电大中专Office办公软件 (3)作业 题库