AndroidはScrollerでグラデーションスライドを実現

832 ワード

Scrollerがグラデーションスライドを実現するのは固定的な書き方です.
次のようになります.
mScroller = new Scroller(mContext);
  /**
     *           ViewGrope
     *       
     * @param destX
     * @param destY
     */
    private void smoothScrollToMy(int destX, int destY) {
        int scrollX = getScrollX();
        int delta = destX - scrollX;

        mScroller.startScroll(scrollX, 0, delta, 0, 1000);
        invalidate();
    }

    @Override
    public void computeScroll() {
        super.computeScroll();
        if (mScroller.computeScrollOffset()) {
            scrollTo(mScroller.getCurrX(), mScroller.getCurrY());
            postInvalidate();
        }
    }
これは1秒のグラデーションスライドです.
説明:1.ここでのスライドは、位置ではなく内容をスライドさせます.
   2. 動作原理はスライド時間に基づいて、繰り返し再描画され、グラデーションに見えます.
   3. 主にcomputeScroollで再描画されます