我已经在我的项目中成功地使用了动画,带有 TranslateAnimation 对象,但是当我返回视图已被动画化的活动时,它们会在默认位置重绘。
所以,例如,
我创建了一个名为 HomeActivity 的活动。内容按照 XML 中的定义绘制。视图 (myTextView) 可能出现在位置 0。
我可以使用 TranslateAnimation 将 myTextView 移动到 position1。
我可以单击一个按钮(或其他任何东西)来启动,比如说,MenuActivity。
我退出 MenuActivity 并恢复 HomeActivity。
(我所看到的)
myTextView 再次出现在 position0 处。
(我想看到的)
myTextView 绘制在位置 1。
这是我执行动画的方式。
TextView myTextview = (TextView)findViewById(R.id.mytextview);
private void animate()
{
Animation anim = new TranslateAnimation(0, displacementX, 0, displacementY);
anim.setDuration(200);
anim.setAnimationListener(this); // This activity implements AnimationListener
anim.setFillEnabled(true);
anim.setFillAfter(true);
myTextview.startAnimation(anim);
}
@Override
public void onAnimationEnd( Animation animation )
{
myTextview.clearAnimation();
}
是否有任何我应该设置的标志(可能在上述过程中、onPause 或 onAnimationEnd 中)会导致视图保持其动画后状态?或者我是否需要在开始新活动之前保存他们的位置并将它们转移到 onResume 中?还是完全有另一种方式?
如果您需要任何澄清,请告诉我。
忘了说明,最低 SDK 为 2.2 (API 8)。
提前致谢。