-
2012-7-17과거...../개발일지 2012. 7. 17. 19:46
-ObjectAnimator삽질 결과-
target의 상태는 gone으로 하지말고 invisible에서 시작할 것(gone에서 translate할 시 좌표값이 틀어 질 수 있음)
<set >
<objectAnimator
xmlns:android="http://schemas.android.com/apk/res/android"
android:valueFrom ="-1123"
android:valueTo="6"
android:propertyName="x"
android:duration="700"
android:startOffset="195"
/>
<objectAnimator
xmlns:android="http://schemas.android.com/apk/res/android"
android:valueFrom ="315"
android:valueTo="114"
android:propertyName="y"
android:duration="700"
android:startOffset="195"
/>
<objectAnimator
xmlns:android="http://schemas.android.com/apk/res/android"
android:valueFrom="-10"
android:valueTo="-6"
android:pivotX="0%"
android:pivotY="100%"
android:propertyName="rotation"
android:duration="700"
android:startOffset="195"
/>
</set>
위와 같이 여러개 선언 시 아래와 같이 하나 하나 start를 달아주어야 함
for(Animator animator:animatorSet.getChildAnimations()){
if(animator == animatorSet.getChildAnimations().get(0)){
//listener가 달린 경우만 적용하기 위해서 nullpoint 체크
try{
final AnimatorListener listener = (AnimatorListener) animatorSet.getListeners().get(0);
animator.addListener(new AnimatorListener() {
@Override
public void onAnimationStart(Animator arg0) {
listener.onAnimationStart(arg0);
}
@Override
public void onAnimationRepeat(Animator arg0) {
listener.onAnimationRepeat(arg0);
}
@Override
public void onAnimationEnd(Animator arg0) {
listener.onAnimationEnd(arg0);
}
@Override
public void onAnimationCancel(Animator arg0) {
listener.onAnimationCancel(arg0);
}
});
}catch(NullPointerException e){
}
}
animator.start();
}
*ObjectAnimator 사용시 rotation관련 pivot설정은 view에 layout에서 정의하고 사용하여야한다