打造一个具有弹性滑动效果的TextView

来源:互联网 发布:深圳海关数据分中心 编辑:程序博客网 时间:2024/05/16 16:22

先看效果图

这里写图片描述

实现步骤:

  • 自定义ScrollTextView继承TextView
  • 实现滑动的方法
  • 重写computeScroll()方法

代码实现

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();        }    }}
0 0
原创粉丝点击