안드로이드

안드로이드 애니메이션 Animation x,y 좌표 이동 애니메이션과 애니메이션 후 위치(좌표) 고정

알통몬_ 2017. 5. 16. 10:20
반응형


안녕하세요 알통몬입니다.

공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!!

포스팅 내용이 찾아주신 분들께 도움이 되길 바라며

더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^

 


이번 포스팅에서는 안드로이드 애니메이션 중에 x,y 좌표 이동 애니메이션 구현 방법에 대해 알아보고,

애니메이션 동작 후 이동한 좌표에 View 위치를 고정시키는 방법에 대해 알아보겠습니다.

1. 먼저 좌표이동을 원하는 뷰를 정해주세요.

저는 LinearLayout의 위치를 이동시키기로 했습니다.


2. 애니메이션을 위한 메소드를 하나 선언해줍니다.

 

public static void translateAnim(float xStart, float xEnd, float yStart, float yEnd, int duration, LinearLayout layout) {

        TranslateAnimation translateAnimation = new TranslateAnimation(

                Animation.RELATIVE_TO_SELF,xStart,

                Animation.RELATIVE_TO_SELF, xEnd,

                Animation.RELATIVE_TO_SELF,yStart,

                Animation.RELATIVE_TO_SELF,yEnd);

        translateAnimation.setDuration(duration);

        layout.startAnimation(translateAnimation);

    }



매개 변수 중에 LinearLayout 대신 원하는 뷰를 넣으시면 됩니다.

xStart : 뷰의 시작 x좌표입니다.

xEnd : 뷰의 종료 x 좌표입니다.

yStart : 뷰의 시작 y좌표입니다.

yEnd : 뷰의 종료 y좌표입니다.

값은 -1f ~ 1f 의 값들을 넣어주시면 됩니다.

예를 들어 

xStart : -1

xEnd : 1을 넣어주시면

위 사진처럼 뷰가 이동합니다.

duration에 넣어준 시간동안.


duration : 애니메이션 동작 시간입니다. 밀리세컨드단위입니다. ex) 1000 = 1초


그리고 위 메소드처럼만 사용하면, 애니메이션이 동작한 후에 뷰의 위치가 다시 원래대로 돌아가요.

때문에 아래처럼 사용해주셔야 위치가 이동 후에 고정됩니다.

애니메이션에 setFillAfter(true);를 추가해주셔야 합니다.

 

        translateAnimation.setDuration(duration);

        translateAnimation.setFillAfter(true);



이상입니다.


다음 포스팅에서는 애니메이션을 이용해 ListView의 아이템을 클릭했을 때 스와이프 애니메이션처럼

 구현하는 방법에 대해 포스팅하겠습니다.

반응형