반응형
종료 애니메이션 이벤트 android
뷰 (조각 안에 있음)에 페이드 아웃 애니메이션이 있으며 애니메이션이 발생할 때마다 뷰가 다시 그려집니다. 나는 view.SetVisibility(View.GONE)
. 그러나 애니메이션이 끝날 때까지 기다리지 않습니다. 애니메이션이 완료된 후에 만이 setVisibility 코드를 실행하고 싶습니다. 이를 수행하는 가장 좋은 방법은 무엇입니까?
다음과 같이 애니메이션 객체에 애니메이션 리스너를 추가 할 수 있습니다.
anim.setAnimationListener(new Animation.AnimationListener(){
@Override
public void onAnimationStart(Animation arg0) {
}
@Override
public void onAnimationRepeat(Animation arg0) {
}
@Override
public void onAnimationEnd(Animation arg0) {
}
});
허용되는 답변과 기능적으로 동일하지만 훨씬 더 간결한 방식으로 :
/* Add/Remove any animation parameter */
theView.animate().alpha(0).setDuration(2000).withEndAction(new Runnable() {
@Override
public void run() {
theView.setVisibility(View.GONE);
}
});
즐겨 :)
애니메이션 개체를 가져와 애니메이션 리스너를 추가하기 만하면됩니다. 다음은 예제 코드입니다.
rotateAnimation.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) {
// TODO Auto-generated method stub
**// WRITE HERE WHATEVER YOU WANT ON THE COMPLETION OF THE ANIMATION**
}
});
Animation.setFillAfter를 사용하여이 작업을 수행 할 수도 있습니다.
Kotlin의 예
var fadeOutImage = findViewById<ImageView>(R.id.fade_out_Image)
val fadeOutAnimation = R.anim.fade_out_animation
val animation = AnimationUtils.loadAnimation(this, fadeOutAnimation)
fadeOutImage.startAnimation(animation)
animation.setAnimationListener(object : Animation.AnimationListener {
override fun onAnimationStart(p0: Animation?) {
// not implemented
}
override fun onAnimationRepeat(p0: Animation?) {
// not implemented
}
override fun onAnimationEnd(p0: Animation?) {
fadeOutImage.visibility = View.INVISIBLE
}
})
참고 URL : https://stackoverflow.com/questions/7606498/end-animation-event-android
반응형
'development' 카테고리의 다른 글
Homebrew를 통해 Memcached를 설치했습니다. 서버를 시작하고 중지하는 방법은 무엇입니까? (0) | 2020.09.23 |
---|---|
Android 애니메이션이 반복되지 않습니다. (0) | 2020.09.23 |
모델에서 속성 변경을 감지하는 방법은 무엇입니까? (0) | 2020.09.23 |
Android : 사용 가능한 공간을 채우기 위해 뷰를 확장하는 방법은 무엇입니까? (0) | 2020.09.23 |
현재 스레드를 사용하는 ExecutorService가 있습니까? (0) | 2020.09.23 |