Android自定义view

您所在的位置:网站首页 安卓滚动选择器怎么设置 Android自定义view

Android自定义view

2023-09-12 01:20| 来源: 网络整理| 查看: 265

Scroller滚动类

系统自带的android.widget.Scroller 类封装了滚动相关的操作。可以使用Scroller获取可以产生滚动效果的数据;例如,在响应一个滑动手势时,Scroller会帮你计算 滚动偏移量,你可以根据获取的偏移量来设置你的view的位置,从而实现滚动效果。 主要方法有:

startScroll(int startX, int startY, int dx, int dy) //开始计算平滑滚动,dx、dy为滚动的距离,dx = finalX - startX; fling(int startX, int startY, int velocityX, int velocityY, int minX, int maxX, int minY, int maxY) //根据滑动的速度,开始计算惯性滚动 computeScrollOffset()//计算当前时间滚动的偏移量,如果返回true,则滚动还未结束 getCurrY() //获取当前Y轴坐标的偏移量 getCurrX() //获取当前X轴坐标的偏移量 mScroller.abortAnimation() //停止滚动 在自定义View中常用的方法为: // 开始计算平滑滚动 mScroller.startScroll(startX, startY, dx, dy);  // 调用invalidate()方法刷新view时,在绘制(onDraw)之前会调用view.computeScroll()方法, // 所以在此方法内计算偏移量 public void computeScroll() { if (mScroller.computeScrollOffset()) { // 正在滚动     int curY = mScroller.getCurrY(); int curX = mScroller.getCurrX(); // do something invalidate(); // 刷新 }else{ // 滚动结束 // do something } } 在滚动选择器中,当手指滑动时,把滑动的距离赋值给mMoveLength,当手指抬起时,则调用Scroller.startScroll()方法,将当前item移动到中间位置;如果是快速滑动后抬起手指,则调用Scroller.fling()方法惯性滑动一段距离,惯性结束后再调用Scroller.startScroll()方法,将当前item移动到中间位置. public void computeScroll() { if (mScroller.computeScrollOffset()) { // 正在滚动 // 可以把scroller看做模拟的触屏滑动操作,mLastScrollY为上次滑动的坐标 mMoveLength = mMoveLength + mScroller.getCurrY() - mLastScrollY; mLastScrollY = mScroller.getCurrY(); checkCirculation(); // 检测当前选中的item invalidate(); } else { // 滚动完毕 if (mIsFling) { mIsFling = false; moveToCenter(); // 滚动到中间位置 } else if (mIsMovingCenter) { // 选择完成,回调给监听器 mMoveLength = 0; mIsMovingCenter = false; mLastScrollY = 0; notifySelected(); } } }


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3