弹性滑动

为了避免 滑动的生硬,可以采用弹性滑动,提高用户体验。这里主要有 :Scroller、动画、延时三种方式。如下是 Scroller 的典型使用,主要是 invalidate方法起的作用

Scroller mScroller = new Scroller(context);

// 滑动到指定位置@param destX  X 滑动距离 @param destY  Y 滑动距离

private void smoothScrollTo(int destX, int destY) {

      int scrollX = getScrollX();//滑动起点X

      int scrollY = getScrollY();//滑动起点Y

      mScroller.startScroll(scrollX, scrollY, destX, destY, 1000); //1000 ms内慢慢滑向 (destX,destY)

      invalidate(); //重绘

}

@Override  // 使View 不断重绘

public void computeScroll() {

    // computeScrollOffset 方法通过时间流逝百分比计算 scrollX和scrollY ,返回true 表示滑动未结束

    if (mScroller.computeScrollOffset()) {

        scrollTo(mScroller.getCurrX(), mScroller.getCurrY());//滑动到当前位置,通过小幅度滑动    实现弹性滑动

        postInvalidate();//再次重绘}

}。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值