打造一个具有弹性滑动效果的TextView
2016-12-16 23:02 阅读(220)

先看效果图

这里写图片描述

实现步骤:

代码实现

public class ScrollTextView extends TextView {

    private Context mContent;

    private Scroller mScroller;

    public ScrollTextView(Context context) {
        this(context, null);
    }

    public ScrollTextView(Context context, AttributeSet attrs) {
        this(context, attrs, 0);
    }

    public ScrollTextView(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
        mContent = context;
        mScroller = new Scroller(mContent);
    }
    /**
     * 调用此方法实现滑动
     * /
    public void smoothScrollTo(int detX, int detY, int duration) {
        int scrollX = getScrollX();
        int scrollY = getScrollY();
        int deltaX = detX - scrollX;
        int deltaY = detY - scrollY;
        mScroller.startScroll(scrollX, scrollY, deltaX, deltaY, duration);
        // invalidate()会触发onDraw()方法,onDraw()方法会调用computeScroll()方法。
        invalidate();
    }

    @Override
    public void computeScroll() {
        if (mScroller.computeScrollOffset()) {
            scrollTo(mScroller.getCurrX(), mScroller.getCurrY());
            postInvalidate();
        }
    }
}



作者:小迈949804781