先看效果图
实现步骤:
自定义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(); } } }
作者:小迈949804781