在退出动画的runnerable中,输入判断是否已完成进入动画时,退出动画不执行了

来源:3-2 优化绘制涟漪效果-下

Dizent

2017-04-18 11:39

//退出进度值
    private float mExitProgress = 0 ;
    //每次递增的进度值
    private float mExitIncrement = 16f/280;
    //进入动画查值器,用于实现从慢到快的效果
    private Interpolator mExitInterpolator = new AccelerateInterpolator(2);
    //动画回调
    private Runnable mExitRunnable = new Runnable() {
        
        @Override
        public void run() {
            //进入时,首先判断进入动画是否具有
            if(!mEnterDone)
                return;
            mExitProgress = mExitProgress+mExitIncrement;
            // TODO Auto-generated method stub
            if(mExitProgress>1){
                onExitProgress(1);
                onExitDone();
                return;
            }
            
            float realProgress = mExitInterpolator.getInterpolation(mExitProgress);
            
            onExitProgress(realProgress);
            
            //延迟16毫秒,保证界面刷新频率接近60FPS
            scheduleSelf(this, SystemClock.uptimeMillis()+16);
        }
    };


写回答 关注

1回答

  • qq_明天过后_10
    2017-04-21 11:31:37

    两个原因:

                第一:mEnterDone一直为false

                第二:时间监听时没有坚挺到手指抬起或者手指取消

带您完成神秘的涟漪按钮效果-提高篇

轻松实现控件涟漪效果,高级篇!

7039 学习 · 6 问题

查看课程

相似问题