View的弹性滑动

实现弹性滑动的思想:将一次大的滑动分成若干次小的滑动并在一个时间段内完成,具体的实现方式有很多,如通过Scroller、Handler#postDelayed以及Thread#sleep等。

一、使用scroller

典型的使用方法

弹性滑动的实现:当View重绘后会在draw方法中调用computeScroll,而computeScroll又会去向Scroller获取当前的ScrollX和ScrollY;然后通过ScrollTo方法实现滑动;接着又调用postInvalidate方法来进行第二次重绘,这一次重绘的过程和第一次重绘一样,还是会导致computeScroll方法被调用;然后继续向Scroller获取当前的ScrollX和ScrollY,并通过ScrollTo方法滑动到新位置,如此反复,直到整个滑动过程结束。

二、通过动画

三、使用延时策略

1.使用Handler

2.View的postDelayed方法

3.使用线程的sleep方法

View的弹性滑动的更多相关文章

  1. 浅谈Android View滑动和弹性滑动

    引言 View的滑动这一块在实际开发中是非常重要的,无论是优秀的用户体验还是自定义控件都是需要对这一块了解的,我们今天来谈一下View的滑动. View的滑动 View滑动功能主要可以使用3种方式来实 ...

  2. (转载)自定义View——弹性滑动

    滑动是Android开发中非常重要的UI效果,几乎所有应用都包含了滑动效果,而本文将对滑动的使用以及原理进行介绍. 一.scrollTo与ScrollBy View提供了专门的方法用于实现滑动效果,分 ...

  3. View基础知识

    一.View基础知识 View 是Android中所有控件的基类,是一种界面层的控件的一种抽象,代表了一个控件 1.View的位置参数 View的四个属性:top(左上角纵坐标)     left(左 ...

  4. Android开发艺术探索笔记—— View(一)

    Android开发艺术探索笔记 --View(一) View的基础知识 什么是View View是Android中所有控件的基类.是一种界面层控件的抽象. View的位置参数 参数名 获取方式 含义 ...

  5. Android艺术开发探索第三章——View的事件体系(上)

    Android艺术开发探索第三章----View的事件体系(上) 我们继续来看这本书,因为有点长,所以又分了上下,你在本片中将学习到 View基础知识 什么是View View的位置参数 Motion ...

  6. view类初探(一)

    /*************************************************************************************************** ...

  7. 详解实现Android中实现View滑动的几种方式

    注: 本文提到的所有三种滑动方式的完整demo:ScrollDemo 1. 关于View我们需要知道的 (1)什么是View? Android中的View类是所有UI控件的基类(Base class) ...

  8. Android之View的内容

    View的事件体系 本章介绍View的事件分发和滑动冲突问题的解决方案. 3.1 view的基础知识 View的位置参数.MotionEvent和TouchSlop对象.VelocityTracker ...

  9. Android学习笔记之View

    转载: 0.7562018.10.22 21:44:10字数 5,423阅读 189   导图 一.View事件体系 1.什么是 View 和 View的位置坐标 View是什么: View 是一种界 ...

随机推荐

  1. Bootstrap表单验证插件bootstrapValidator使用方法整理

    插件介绍 先上一个图: 下载地址:https://github.com/nghuuphuoc/bootstrapvalidator 使用方法:http://www.cnblogs.com/huangc ...

  2. root切换

    1.su -i root.password 2.su passwd root pass pass su pass 3.su -val 一般用户名 4.

  3. 应用市场中包名(package name)的唯一性

    一般的应用商店,在开发者上传应用(APP)的时候,都会对应用的包名进行唯一性的校验.如果此时,用户上传的应用的包名与数据库中的已有的APP的包名一样,那么正常情况下,该应用就不能上传,而弹出提示说,该 ...

  4. 修改linux的系统时间和时区

    时间: date命令将日期设置为2016年12月16日 ----   date -s 12/16/16 将时间设置为9点28分50秒 ----   date -s 09:28:50 时区: tzsel ...

  5. canvas星星炫耀

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  6. 模拟搭建Web项目的真实运行环境(四)

    本篇介绍如何部署mongodb环境,主要分为三个部分: 第一部分 介绍如何在ubuntu下安装mongodb, 第二部分 介绍如何在windows下安装使用MongoChef客户端, 第三部分 介绍在 ...

  7. 85. Maximal Rectangle

    85. Maximal Rectangle Given a 2D binary matrix filled with 0's and 1's, find the largest rectangle c ...

  8. Guava学习笔记(一)概览

    Guava是谷歌开源的一套Java开发类库,以简洁的编程风格著称,提供了很多实用的工具类, 在之前的工作中应用过Collections API和Guava提供的Cache,不过对Guava没有一个系统 ...

  9. 【体系结构】动态调度算法:记分牌算法和tomasulo算法

    记分牌和tomasulo算法 动态调度: 通过硬件在程序执行时重新安排代码的执行序列来减少竞争引起的流水线停顿时间 动态调度流水线具备以下功能: (1)允许按序取多条指令和发射多条指令----取指(I ...

  10. JavaScript call

    <script> function dog() { this.sound = "wangwang~"; this.shout = function () { alert ...