안녕하세요. 


Animation Test 하는 중에 Text만 새로 setting해서 반복적으로 Animating 되도록 하고 싶은데 자꾸만 최초 Animating 시

onAnimationEnd후 AnimationListener가 자동으로 한번 더 호출 됩니다.

로그는 아래와 같이 나오구요.


dksong, OnAnimationEnd

dksong, startAni()

dksong, OnAnimationStart

dksong, OnAnimationEnd

dksong, startAni()

dksong, OnAnimationStart



하지만 생각을 해봐도 대체 2번 호출 되는 이유를 모르겠습니다.


아래는 Test Source 입니다.


package com.ray.test;


import android.app.Activity;

import android.os.Bundle;

import android.util.Log;

import android.view.View;

import android.view.animation.Animation;

import android.view.animation.Animation.AnimationListener;

import android.view.animation.AnimationUtils;

import android.widget.Button;

import android.widget.LinearLayout;

import android.widget.TextView;


public class Test_AnimationActivity extends Activity {

    /** Called when the activity is first created. */

TextView textView = null;

Button button = null;

Animation animLeftIn = null;

LinearLayout testLayout = null;

    @Override

    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.main);

       

                

        textView = (TextView) findViewById(R.id.test_text);

        

        testLayout = (LinearLayout) findViewById(R.id.test_layout);

        

        button = (Button) findViewById(R.id.test_bt);

        button.setOnClickListener(new Button.OnClickListener() {

@Override

public void onClick(View v) {

// TODO Auto-generated method stub

startAni();

}

});

        

        animLeftIn = AnimationUtils.loadAnimation(this, R.anim.anim_push_left_in);

        

        animLeftIn.setAnimationListener(new AnimationListener() {

@Override

public void onAnimationStart(Animation animation) {

// TODO Auto-generated method stub

Log.e("dksong", "onAnimationStart");

}

@Override

public void onAnimationRepeat(Animation animation) {

// TODO Auto-generated method stub

Log.e("dksong", "onAnimationRepeat");

}

@Override

public void onAnimationEnd(Animation animation) {

// TODO Auto-generated method stub

Log.e("dksong", "onAnimationEnd");

startAni();

}

});

                

    }

    

    private void startAni()

    {

    Log.d("dksong", "startAni()");

    testLayout.startAnimation(animLeftIn);

    }

}