본문 바로가기
안드로이드+자바

안드로이드 스튜디오) Animation , ValueAnimator ,ObjectAnimator ,AnimatorSet

by 문자메일 2017. 1. 6.
@Override
public void onClick(View view) {
switch (view.getId()){
case R.id.button:
Animation animation = AnimationUtils.loadAnimation(MainActivity.this, R.anim.animtest); // 에니메이션 가져오기
b.startAnimation(animation);
break;
case R.id.button2:
//밑의 에니메이터 코드들의 장점은 애니메이션 된 후 이동한 위치에 있는 버튼? 뷰?를 클릭할 수 있다.
//ValueAnimator의 장점은 안드로이드에 있는 view 뿐만 아니라 사용자가 만단 customView도 움직일 수 있다.
// ValueAnimator valueAnimator = ValueAnimator.ofInt(b2.getTop(), b2.getTop()-100);//버튼의 top값을 올리는 코드
// valueAnimator.setDuration(5000); //5초동안
//
// valueAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
// @Override
// public void onAnimationUpdate(ValueAnimator valueAnimator) {
// b2.setTop((Integer) valueAnimator.getAnimatedValue());
// }
// });
// valueAnimator.start();//애니메이션 시작



ObjectAnimator objectAnimator = ObjectAnimator.ofInt(b2, "Bottom", b2.getBottom(), b2.getBottom()-100);
objectAnimator.setDuration(4000);
//objectAnimator.start();

ObjectAnimator objectAnimator1 = ObjectAnimator.ofInt(b2, "Top", b2.getTop(), b2.getTop()-100); //속성의 좌표를 이동하는 코드
objectAnimator1.setDuration(4000); //애니메이션 시간 설정
//objectAnimator1.start();

AnimatorSet animationSet = new AnimatorSet(); //여러개의 애니메이션을 묶어서 동시에 시작
animationSet.playTogether(objectAnimator, objectAnimator1);
animationSet.start();


 

댓글