将我的手机从Android 6.0升级到7.0后,动画无法正常工作。
我的项目中有一个小动画类,有3个简单的静态方法:
public static Animation fadeInAnimation(int duration, int offset)
{
Animation animation = new AlphaAnimation(0.0f, 1.0f);
animation.setInterpolator(new DecelerateInterpolator());
animation.setDuration(duration);
animation.setStartOffset(offset);
return animation;
}
public static Animation fadeOutAnimation(int duration, int offset)
{
Animation animation = new AlphaAnimation(1.0f, 0.0f);
animation.setInterpolator(new AccelerateInterpolator());
animation.setDuration(duration);
animation.setStartOffset(offset);
return animation;
}
public static Animation fadeInOutAnimation(int duration, int repeatCount, int repeatMode, int offset)
{
Animation animation = new AlphaAnimation(0.0f, 1.0f);
animation.setInterpolator(new DecelerateInterpolator());
animation.setRepeatCount(repeatCount);
animation.setRepeatMode(repeatMode);
animation.setDuration(duration);
animation.setStartOffset(offset);
return animation;
}
在SplashScreen类中,我以这种方式使用它们:
mAnimationScreenStart = Animations.fadeInAnimation(1500, 300);
mAnimationScreenEnd = Animations.fadeOutAnimation(1500, 0);
textView.startAnimation(Animations.fadeInOutAnimation(ANIMATION_DURATION, Animation.INFINITE, Animation.REVERSE, ANIMATION_OFFSET));
TextView是一个"点击继续"文字和它的工作正常。 然后我为两个动画添加了监听器。在Android 6.0上一切都很好,但在7.0持续时间表现得像延迟,而不像实际的动画持续时间。
然后我尝试在没有我之前课程的情况下做动画,如下所示:
frameLayout.animate().alpha(1f).setDuration(3000).setStartDelay(350).setListener(new AnimatorListenerAdapter()
{
@Override
public void onAnimationEnd(Animator animation)
{
super.onAnimationEnd(animation);
frameLayout.setAlpha(1f);
frameLayout.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
if (!isClicked)
{
isClicked = true;
frameLayout.animate().alpha(0f).setDuration(3000).setListener(new AnimatorListenerAdapter()
{
@Override
public void onAnimationEnd(Animator animation)
{
super.onAnimationEnd(animation);
frameLayout.setAlpha(0f);
Intent intentLogin = new Intent(StartScreen.this, Login.class);
startActivity(intentLogin);
finish();
}
});
}
}
});
}
});
isClicked只是一个布尔值,以确保不会重复结束动画。
但是,动画仍然不能正常工作。有动画,但它的持续时间就像是0.5秒,我设置的持续时间就像延迟一样。我尝试过像frameLayout.setVisibility(View.VISIBLE)和其他很多东西。我已经在网上搜索过Android 7.0的问题,但是我没有找到任何东西。
正如我所说,6.0动画正常运行没有任何问题。
我很乐意帮助这件事。