앞서 두 포스팅의 단점은, view의 그래픽만 이동하고 실질적인 레이아웃은 원래 자리에 남아있다는 것이다. 그렇기 때문에 만일 지금처럼 뷰 애니메이팅을 이용하려 한다면, 만약 편지에 클릭 리스너를 적용하고 싶다면 번거롭게 뷰 이동후 -> 뷰 의 이동이 끝날 때 실질적인 레이아웃을 이동시켜야 한다.
그렇기 때문에 차라리 뷰 애니메이션보다 Object Animator을 이용해보도록 한다.
필자는 간단하게 위로 이동하는 모션만 만들었기 때문에, 자바파일에서 속성을 선언했는데 이렇게 보면 차라리 뷰 애니메이션보다 간단할수도 있겠다.
private void mailLoadAction() {
ObjectAnimator animator = ObjectAnimator.ofFloat(linearLayoutMail, "translationY", -mailLayoutHeight);
animator.setDuration(700);
animator.setInterpolator(new OvershootInterpolator());
animator.setTarget(linearLayoutMail);
animator.addListener(mailListener);
animator.start();
}
이 모션은 우체통이 다 흔들리고 난 후에 나타나는 모션이다.
먼저,
ObjectAnimator animator = ObjectAnimator.ofFloat(linearLayoutMail, "translationY", -mailLayoutHeight);
로 애니메이션을 선언한다.
첫번째 변수에는 움직일 오브젝트.
두 번째 변수에는 파라미터 이름을 적고, 세번째에 움직일 애니메이션의 값을 적는다.
translatonY 프로퍼티는 현재 위치에서의 이동하기 때문에 변수를 하나만 가지고, Y 시작지점도 정하기 때문에 startValue와 endValue 두 개의 변수를 받는다.
duration과 interpolator, 그리고 이 애니메이션의 타겟을 선정하고 start를 하면 애니메이션이 시작된다.
ObjectAnimator은 말 그대로 오브젝트를 옮겨주기 때문에 레이아웃까지 이동되면서 클릭 리스너가 원활해진다.
'Project > 안드로이드 프로젝트(HomingBird)' 카테고리의 다른 글
Android Studio, JAVA] 오브젝트가 통통 튀는 애니메이팅 (0) | 2020.12.01 |
---|---|
Android Studio, JAVA] shake 애니메이션 (0) | 2020.11.25 |
Android Studio, Java ] Edit text color 변경(밑줄, 커서, 하이라이트 등) (0) | 2020.11.24 |
Android Studio, JAVA, Google Firebase] 한번의 매서드로, 세 개의 쿼리를 처리하기 (0) | 2020.11.10 |
Android Studio, JAVA] 랜덤함수를 이용해 유저 고유 코드를 만들고 저장하기 (1) | 2020.11.09 |