首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Android使用Scroller实现弹性滑动效果

本文实例为大家分享了Android使用Scroller实现弹性滑动展示的具体代码,供大家参考,具体内容如下 scrollTo、scrollBy View内部为了实现滑动提供了这两个方法,但是使用这两个方法滑动的效果是瞬间的不够平滑...Scroller类 上面提到使用scrollTo、scrollBy来滑动View的时候是很生硬得滑过去的,不够平滑,自然用户体验也不好,因此我们要实现一个弹性的滑动。如何实现弹性滑动呢?...方法有很多,但思想都是一致的,即将实现一段距离的滑动分成多次来进行,每一次滑动一小段,渐近式的滑动。本文只是介绍其中的一种即使用Scroller实现弹性滑动。...以下结合实例看看Scroller是如何实现平滑滑动的呢 ?...对象,第13行的smoothScroll方法是实现SmoothScrollView的平滑滑动,可以看到实现平滑滑动首先调用第18行Scroller的startScroll方法来设置滑动参数,下文会分析这个方法

1.3K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    onTouchEvent(二) 使用Scroller实现黏性滑动的ScrollView

    上一篇博文onTouchEvent(一) 你所必须知道的坐标详解介绍了onTouchEvent()手势控制相关的一些坐标概念,这篇文章结合上一篇内容加上Scroller实现一个简单的带黏性滑动的ScrollView...思路 滑动的时候判断最终偏移量是不是超出了子view(ViewGroup内容)的范围,如果超出了就限制不让其超出,这样就可以做出一个滑动的ScrollView并且不会滑出界 当松手(action_up)...的时候判断当前偏移量在该子view的什么位置,如果小于三分之一就滑动回该view的头部,如果超出三分之二就滑动到下个view 首先看看我们需要做些什么,自定义View要复写的方法有好几个,我们要复写的有...3不用说了,要实现滑动功能必须要实现的函数。 4这是配合Scroller使用的一个函数。 首先介绍下Scroller这个类,这个类是一个工具,并不是实际UI操作。...下面是一个不使用Scroller的Demo。 ? 差别很明显。 ? onMeasure()没什么好说的,遍历子view,测量子view。 onLayout ?

    1K30

    android开发通过Scroller实现过渡滑动效果操作示例

    本文实例讲述了android开发通过Scroller实现过渡滑动效果。...分享给大家供大家参考,具体如下: 主要介绍一下Scroller这个类,它可以实现过渡滑动的效果,使滑动看起来不是那么生硬,当然它用大量的重绘来实现,invalidate();通过源码看: 看构造方法.../** * Create a Scroller with the default duration and interpolator. */ public Scroller(Context...computeDeceleration(0.84f); // look and feel tuning } 我们用默认的就行,传个context就行了,其他的什么差值器,先不管了 然后调用startScroll,传递我们歧视滑动位置和滑动的偏移量...scrollto到scroller的当前位置,再次调用invalidate(),由此无数的重回进行拼接形成了平滑的滑动 /** * Call this when you want to know

    79831

    Scroller简介

    Scroller简介 在SlidingMenu项目中为了实现控件的滑动,需要用到Scroller类来实现缓慢的滑动过程,至于有人说View类可以直接调用scrollTo()方法, 这里scrollTo(...查看Scroller源码 public class Scroller { //... } 发现Scroller类并不是View的子类,只是一个普通的类,这个类中封装了滚动的操作,记录了滚动的位置以及时间等...从而我们可以知道调用Scroller.startScroll()方法并没有真正的移动,而是设置了一些数据。 Scroller.startScoll()是如何与View的移动相关联呢?...Scroller} * object. */ public void computeScroll() { } 通过注释我们可以看到该方法又父类调用根据滚动的值去更新View,在使用Scroller...Scroller.startScroll()方法被调用后会储存要滚动的起始位置、结束位置、持续时间。

    67290

    不再迷惑,也许之前你从未真正懂得 Scroller滑动机制

    我大概知道为什么,可能是你混淆了手指滑动方向和内容滑动方向。 手指向左滑动,内容将向右显示,这时 mScrollX > 0。 手指向右滑动,内容将向左显示,这时 mScrollX < 0....手指向上滑动,内容将向下显示,这时 mScrollY < 0。 手指向下滑动,内容将向上显示,这时 mScrollY > 0....当手指在一个 RecyclerView 上快速滑动,如果抬起手指后,RecyclerView 中的内容继续滑动一段距离才停下来的这种情况就称为快速滚动。...Scroller 的完整实战 我们现在的目标是自定义一个 View,检验我们所学习的 Scroller 知识及 View 自身滑动机制如 scrollBy。包括: 1....最重要的一点就是要深刻理解 mScrollX、mScrollY 在 Canvas 坐标中的意义,要区分手指滑动方向、内容滑动方向和 mScrollX、mScrollY 数值的关系。

    1.6K10

    Android开发之Scroller

    什么是Scroller?...翻译为弹性滑动对象,可以实现View的弹性滑动动画,与Scroller相关的就是大家比较熟悉的scrollTo和scrollBy方法,可以用来实现View的滑动,但是它们的缺点就是瞬间完成,无法很平滑地过渡...,而Scroller可以帮助我们很平滑地进行弹性滑动。...使用 一般使用在自定义View中较多,可以实现View的弹性滑动效果 1、自定义一个View,注释很详细 /** * 自定义View 里面有个Scroller 它能实现非常平滑的滚动效果 就像动画一样...Scroller.gif 注意点 Scroller本身并不能实现View的滑动,本质还是让View重绘,重绘中调用View的computeScroll方法,在该方法中进行滑动方法的具体实现,然后再调用重绘函数

    79150

    Android Scroller完全解析,关于Scroller你所需知道的一切

    那ViewPager相信每个人都再熟悉不过了,因此它实在是太常用了,我们可以借助ViewPager来轻松完成页面之间的滑动切换效果,但是如果问到它是如何实现的话,我感觉大部分人还是比较陌生的, 为此我也是做了一番功课...,带你从源码的角度彻底理解,但是对于Scroller我还从来没有讲过,因此本篇文章我们就先来学习一下Scroller的用法,并结合事件分发和Scroller来实现一个简易版的ViewPager。...Scroller是一个专门用于处理滚动效果的工具类,可能在大多数情况下,我们直接使用Scroller的场景并不多,但是很多大家所熟知的控件在内部都是使用Scroller来实现的,如ViewPager、ListView...首先在ScrollerLayout的构造函数里面我们进行了上述步骤中的第一步操作,即创建Scroller的实例,由于Scroller的实例只需创建一次,因此我们把它放到构造函数里面执行。...当然就目前这一个例子来讲,我们只是借助它来学习了一下Scroller的基本用法,例子本身有很多的功能点都没有去实现,比如说ViewPager会根据用户手指滑动速度的快慢来决定是否要翻页,这个功能在我们的例子中并没有体现出来

    1.6K60

    View的位置参数及其Scroller类的理解

    } } Scroller类其实是一个在自身中存储各种运动参数的类,并没有关于真正滑动的功能,实现滑动的是scrollTo(x,y)可以理解是在他类的内部进行的滑动设想:你现在这个类中给他一个关于滑动的理想轨迹...(从一个坐标,到另一个坐标和间隔时间),然后scroller根据这些进行规划(根据时间流逝的百分比算出应该滑动到的坐标),在重绘触发的回调函数computeScroll()中再滑动到置顶的位置scrollTo...(scroller.getCurrX(),scroller.getCurrY())。...总结一下就是,Scroller并不能实现View的滑动,它需要配合View的computeScroll()方法才能实现弹性滑动的效果,它不断让View重绘,而每一次重绘都会导致View进行进行小幅度滑动...,而多次小幅度滑动就组成了弹性滑动,这就是Scroller的原理。

    61040

    Android 中 View 的滑动

    Ok,下面来看一下那两个方法的升级版:Scroller 类。在上面的滑动中,效果是瞬间完成的,在 APP 中,这种效果会给人一种非常突兀的感觉。...Scroller 类正是为了给 View 的滑动添加动画效果产生的。...一般来说,使用 Scroller 类要有下面三个步骤: 1、初始化 Scroller 类的对象:Scroller scroller = new Scroller(context) 2、重写要滑动的...,这个方法还有一个重载版本,多了一个参数用于控制滑动时间 下面我们仍然以上面的那个例子做些改变来看一下 Scroller 类的用法: 因为要处理触摸事件,因此我们新建一个类继承 LinearLayout...成功的实现了滑动效果! 不知道小伙伴们发现没有,在这里实现的滑动都是对当前控件的全部的子 View 进行滑动,这样在一定程度上限制了滑动的灵活性。那么我们如何处理单个 View 的滑动呢?

    92040

    自定义View基础(二)View的滑动

    Android 自定义View View的滑动 ---- 在移动设备上,滑动基本是基础特性。不管是用的最多的下拉刷新还是ViewPager,他们的基础都是滑动。...View的滑动实现方法也是绚丽的自定义View的基础知识。...by是基于参数的相对滑动,而to是制定位置的决定滑动。 需要注意的是这两个方法只能改变View内容的位置而不能改变View在布局中的位置。...2、View滑动三种方式的对比 scrollTo/scrollBy:操作简单,但是局限明显,适合对View内容的滑动 动画:操作简单,由于现在基本上都是3.0以上版本Android系统,所有可以适合几乎所有情况...改变布局参数:操作稍微复杂,适用于几乎所有情况 3、弹性滑动和实现的三种方式 3.1使用Scroller 再看一遍Scroller的套路代码: Scroller scroller = new Scroller

    44220

    Android编程实现的首页左右滑动切换功能示例

    本文实例讲述了Android编程实现的首页左右滑动切换功能。分享给大家供大家参考,具体如下: 很多软件会选择左右滑动的主界面,实现方式也很多,这里的仅供参考,勿喷。...自定义接口,监听滑动翻页事件: /** 滑动后翻页事件 */ public interface OnViewChangedListener { public void OnViewChanged(int...viewId); } 滑动翻页view(滑动翻页不是很灵敏): import android.content.Context; import android.graphics.Canvas; import...; public class ScrollerView extends FrameLayout { private Scroller scroller; private Drawable drawable...()) { scrollTo(scroller.getCurrX(), scroller.getCurrY()); invalidate(); } } /** 设置滑动后翻页事件监听 */ public

    2.3K20

    Android继承ViewGroup实现Scroll滑动效果的方法示例

    实现Scroll滑动效果需要去检测滑动速率,即要知道每个单位时间滑动了多少像素值,根据这个像素值去判断Scroll滑动到下一页还是上一页。...Scroller的功劳,其实不然,Scroller在这里扮演的角色我认为更像是一个用来计算x和y轴单位时间移动像素的工具类而已,仅此而已没有特别的能力。...真正在这里实现Scroll滑动效果的是ViewGroup里的scrollto和scrollby方法,scrollto是滑动到,scrollby是滑动了。...Scroller.startScroll(getScrollX(), 0, delat, 0, Math.abs(delat)*2); Scroller这个类的startScroll方法传入了五个参数,...分别对应,x轴起滑的偏移像素,y轴起滑的偏移像素,x轴滑动像素,y轴滑动像素,滑动过程需要的时间。

    76720
    领券