【问题标题】:Custom TranslateAnimation causes flickering自定义 TranslateAnimation 导致闪烁
【发布时间】:2011-07-29 01:18:53
【问题描述】:

我的自定义 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);      
    }
}

【问题讨论】:

    标签: android view translate-animation


    【解决方案1】:

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

    【讨论】:

    • 是的,我在设备上遇到了这个问题。我可能不需要在模拟器中尝试它,因为它没有足够的能力来处理很多动画。你是怎么解决这个问题的?
    • 在模拟器上不会发生......这是内存问题。就我而言,我减少了使用的内存量。
    • 嗯,我会看看哪里可以改善我的内存消耗,但无论如何它不应该那么高。
    猜你喜欢
    • 2015-10-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-13
    • 1970-01-01
    • 1970-01-01
    • 2014-03-24
    • 2012-07-23
    相关资源
    最近更新 更多