Scroller解析

来源:互联网 发布:java软件培训 编辑:程序博客网 时间:2024/06/05 18:40

解决什么问题?出现的使命是?

View.scrollTo及scrollBy方法是促使View内容的滑动,但其结果是瞬间达到目标位置,很生硬。
Scroller就是提供一个策略来让这种生硬的移动变的平滑和自然。

解决的过程是?

基本思想

将需要平移的距离切分成小段小段的,在给定时间内逐小段的移动,这样动画效果就出来了。

这里写图片描述

代码实现

/**     * 新增方法     */    public void smoothScrollTo(int targeX, int targetY, int time) {        int deltaX = targeX - getScrollX();        int deltaY = targetY - getScrollY();        mScroller.startScroll(getScrollX(), getScrollY(), deltaX, deltaY, time);        invalidate();    }    @Override    public void computeScroll() {        if (mScroller.computeScrollOffset()) {            this.scrollTo(mScroller.getCurrX(), mScroller.getCurrY());            invalidate();        }    }
0 0