自定义TranslateAnimation导致闪烁

时间:2011-04-04 09:46:22

标签: android view translate-animation

我的自定义TranslateAnimation会垂直移动视图。除了一开始奇怪的短暂闪烁之外,这很好。似乎只有一个可见帧是视图在意外位置闪烁(远高于动画应该开始)。

注意:当我调用super(0,0,0,0)然后没有动画时,不会发生闪烁。

以下是我的代码的简短版本:

public class ExTranslateAnimation extends TranslateAnimation implements AnimationListener
{
    private View myView;
    public ExTranslateAnimation (...)
    {
        // delta is how much it gets moved
        super(0, 0, -delta, 0);
        this.setAnimationListener(this);
        this.setDuration(duration);
        toY =  view.getTop() + delta;
        myView = view;
    }

    @Override
    public void onAnimationEnd(Animation animation)
    {}

    @Override
    public void onAnimationRepeat(Animation animation)
    {}

    @Override
    public void onAnimationStart(Animation animation)
    {

        LayoutParams lp = (LayoutParams) myView.getLayoutParams();
        lp.leftMargin = toX;
        lp.topMargin = toY;
        myView.setLayoutParams(lp);
        myView.layout(toX, toY, 0, 0);      
    }
}

1 个答案:

答案 0 :(得分:1)

它是在模拟器或设备上发生的吗?因为我曾经遇到过同样的问题,但只是在设备的情况下。在模拟器上它工作正常。