我需要在一秒钟内将翻译动画设置为X(150)和Y(100)位置。它与这段代码配合得很好:
Animation translate = new
TranslateAnimation(0, 150 - view.getLeft(), 0, 100 - view.getTop());
translate.setDuration(1000);
view.setAnimation(translate);
translate.start();
但是当动画结束时我需要视图保持在这个位置(150,100),然后我调用 setAnimationListener 并执行此操作:
@Override
public void onAnimationEnd(Animation animation) {
if (animation == translate) {
RelativeLayout.LayoutParams params = new
RelativeLayout.LayoutParams(view.getWidth(), view.getHeight());
params.topMargin = 100;
params.leftMargin = 150;
view.setLayoutParams(params);
}
}
问题在于,在动画结束时,视图闪烁一次(非常快,几乎察觉不到),然后视图移动到另一个位置,非常靠近所需位置(150,100),但不完全正确。
如果我设置 translate.setFillAfter(true),它就可以了。但是,如果我需要将另一个动画应用于同一视图,它是否可以正常工作?
答案 0 :(得分:0)
您需要添加以下内容:
fillAfter=true
fillEnabled=true