하나의보기에 두 가지 유형의 애니메이션 인 TranslateAnimation과 몇 분 후 ScaleAnimation을 만들고 싶습니다. 문제는 ScaleAnimation이 시작되면 뷰가 초기 상태 (TranslateAnimation 이전)로 돌아갑니다. 내가 원하는 것을 할 수있는 방법이 있습니까?Android : 새 애니메이션을 시작할 때 오래된 애니메이션 상태 유지
0
A
답변
0
TranslateAnimation
에 수신기를 추가 할 수 있으며 완료되면 View
의 위치를 애니메이션의 끝 위치로 변경하십시오.
TranslateAnimation anim = new TranslateAnimation(...);
anim.setAnimationListener(new AnimationListener() {
@Override
public void onAnimationStart(Animation animation) { }
@Override
public void onAnimationRepeat(Animation animation) { }
@Override
public void onAnimationEnd(Animation animation) {
view.setX(NEW_X_POSITION);
view.setY(NEW_Y_POSITION);
}
});
하지만 실제로 새로운 ViewPropertyAnimator
프레임 워크 (http://android-developers.blogspot.co.il/2011/05/introducing-viewpropertyanimator.html)에, 클래스의 이전 TranslateAnimation
/ScaleAnimation
형태로 전환 좋을 것. 새로운 프레임 워크에서 당신은 위의 코드에서 같은 위치를 변경할 필요가 없습니다, 그리고 구문은 훨씬 간단합니다 : 당신은 또한 함께 또는 1 재생할 수 애니메이션의 세트를 만들 AnimatorSet
을 사용할 수 있습니다
myView.animate().x(500).y(500);
후에 다른.
추가 읽기 : https://developer.android.com/reference/android/view/ViewPropertyAnimator.html
예! 나는 청취자에 관해 전혀 생각하지 않았다. – Kemix