안녕하세요.
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);
}
}




@Override
public void onAnimationEnd(Animation animation) {
// TODO Auto-generated method stub
Log.e("dksong", "onAnimationEnd");
startAni(); ===> 요기서 애니메이션을 또 시작하는데요~~~~?
}