动画应该放在一个可运行的?

时间:2011-11-22 11:02:26

标签: android animation

在我的应用程序中,我在布局上应用动画。这个动画将布局从屏幕上移开并从另一侧放入:

private void slideAnimation(final int sens)
{

    Animation animOut = null;
    if(sens == -1) {
        animOut = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.slide_out_left);
    } else {
        animOut = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.slide_out_right);
    }

    animOut.setAnimationListener(new AnimationListener() {

        @Override
        public void onAnimationStart(Animation animation) {
            // TODO Auto-generated method stub

        }

        @Override
        public void onAnimationRepeat(Animation animation) {
            // TODO Auto-generated method stub

        }

        @Override
        public void onAnimationEnd(Animation animation) {
            Animation animIn = null;
            if(sens == -1) {
                animIn = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.slide_in_right);
            } else {
                animIn = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.slide_in_left);
            }
            camLayout.startAnimation(animIn);
        }
    });

    camLayout.startAnimation(animOut);
}

需要时我只需调用slideAnimation()。

它工作正常,但有时我们可以看到动画中的动画。我是否应该考虑使用其他解决方案滑出我的布局或我的代码是否正常?

由于

2 个答案:

答案 0 :(得分:0)

如果此代码按照您的预期运行,那么它就是好的。 runnable的问题是它会在更多进程上创建与主线程并行的并且会占用主线程的内存并且会使你的UI性能变弱。

答案 1 :(得分:0)

对我来说似乎没问题!我知道你只是想安排一个动画在另一个动画之后播放。这段代码将完成这项工作。我不确定,但我想动画结束监听器已经从另一个线程听。所以我认为不需要新的线程。