翻译动画 - 结束位置

时间:2014-06-03 12:58:15

标签: java android

我需要在一秒钟内将翻译动画设置为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),它就可以了。但是,如果我需要将另一个动画应用于同一视图,它是否可以正常工作?

1 个答案:

答案 0 :(得分:0)

您需要添加以下内容:

fillAfter=true
fillEnabled=true