android开发教程之使用线程实现视图平滑滚动示例

2019-12-10 20:08:31王冬梅

        private View v = null;      
        //原Y坐标
        private int fromY = 0;  
        //目标Y坐标
        private int toY = 0;      
        //动画执行时间(毫秒)
        private long durtion = 0;      
        //帧率
        private int fps = 60;       
        //间隔时间(毫秒),间隔时间 = 1000 / 帧率
        private int interval = 0;   
        //启动时间,-1 表示尚未启动
        private long startTime = -1;
        /减速插值器
        private DecelerateInterpolator decelerateInterpolator = null;

        /**
         * @desc    构造方法,做好第一次配置
         * */
        public SmoothScrollThread(View v, int fromY, int toY, long durtion, int fps) {
            this.v = v;
            this.fromY = fromY;
            this.toY = toY;
            this.durtion = durtion;
            this.fps = fps;
            this.interval = 1000 / this.fps;       
            decelerateInterpolator = new DecelerateInterpolator();
        }
        @Override
        public void run() {
            //先判断是否是第一次启动,是第一次启动就记录下启动的时间戳,该值仅此一次赋值
            if (startTime == -1) {
                startTime = System.currentTimeMillis();