Android 将标题视图推出/拉入屏幕的动画

Android 将标题视图推出/拉入屏幕的动画,android,performance,animation,Android,Performance,Animation,我们需要有一个动画将标题栏视图推出屏幕并将其拉入屏幕。标题栏位于屏幕顶部 要做这个特定的动画会花费很多,因为屏幕上的动画是不平滑的。我是这样实施的: ValueAnimator animDown = ValueAnimator.ofFloat(1f, 0f); animDown.setDuration(300); params = (RelativeLayout.LayoutParams) titleView.getLayoutParams();

我们需要有一个动画将标题栏视图推出屏幕并将其拉入屏幕。标题栏位于屏幕顶部

要做这个特定的动画会花费很多,因为屏幕上的动画是不平滑的。我是这样实施的:

        ValueAnimator animDown = ValueAnimator.ofFloat(1f, 0f);
        animDown.setDuration(300);
        params = (RelativeLayout.LayoutParams) titleView.getLayoutParams();
        animDown.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
            @Override
            public void onAnimationUpdate(ValueAnimator animation) {
               float currentValue = (float) animation.getAnimatedValue();
               newHeight = -(int) (titleView.getHeight() * currentValue);
               if (newHeight != lastHeight) {
                   params.setMargins(0, newHeight, 0, 0);
                   titleView.requestLayout();
               }
               lastHeight = newHeight;
            }
        });
这在某些地方可以正常工作,但在这里不行,因为我发现在动画过程中调用回调方法
onAnimationUpdate
的次数很少(比如6-8次),这意味着一帧更新的时间超过40ms,这看起来太晚了

我的问题是:有没有一种方法可以提高AnimationUpdate的回调方法的频率,或者有没有其他方法可以使动画更流畅? 以前我们使用了其他动画,如淡出,效果很好,但是这里的推出动画成本太高,而标题视图下面的网格视图列表也很重