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