在Android上,有一个不错的内置动画,用于片段,您只需一行代码即可轻松实现:
transaction.setCustomAnimations(android.R.anim.slide_in_left, android.R.anim.slide_out_right);
我想获得相同的结果,但是在View上,每次刷新并更改其内容时都要对其进行动画处理。我尝试过
view.startAnimation(AnimationUtils.loadAnimation(ctx, android.R.anim.slide_out_right));
view.startAnimation(AnimationUtils.loadAnimation(ctx, android.R.anim.slide_in_left));
但是只有一个动画在视图上播放,一个幻灯片滑出而另一个动画(在这种情况下,是相同的)滑入时,则无法达到相同的效果,您可以清楚地看到一半的屏幕变成白色我的代码,而Fragment Transaction的动画显示了两个片段进出的情况。有什么办法可以同时播放这两个动画?
答案 0 :(得分:0)
您应该能够使用AnimationSet实现这一目标。
在您的情况下,代码应类似于:
Animation anim1 = AnimationUtils.loadAnimation(this, android.R.anim.slide_out_right);
Animation anim2 = AnimationUtils.loadAnimation(this, android.R.anim.slide_in_left);
AnimationSet animationSet = new AnimationSet(false);
animationSet.addAnimation(anim1);
animationSet.addAnimation(anim2);
animationSet.setDuration(1000); // 1s
animationSet.setInterpolator(new LinearInterpolator());
view.startAnimation(animationSet);