TranslateAnimation 을 사용하시면 됩니다.
java코드에서 설정해주는 방식으로 설명드리겠습니다.
ImageView img = (ImageView)findViewById(R.id.xxxx);
TranslateAnimation ani = new TranslateAnimation(
Animation.RELATIVE_TO_SELF, fromX,
Animation.RELATIVE_TO_SELF, toX,
Animation.RELATIVE_TO_SELF, fromY,
Animation.RELATIVE_TO_SELF, toY);
ani.setFillAfter(true); // 애니메이션 후 이동한좌표에
ani.setDuration(durationMillis); //지속시간
img.startAnimation(ani);
이런식으로 애니메이션을 만들어서 해당뷰에서 시작해주면 됩니다.
좀 더 간단한 방법으로 인자를 fromX, toX, fromY, toY 이렇게 네가지만 받는
TranslateAnimation의 생성자도 존재 합니다.
setFillAfter(true)메소드는 애니메이션 종료후 이동한좌표에 그대로 자리잡는다는 설정입니다.
false를 주면 애니메이션 종료후 원래의 좌표로 돌아가게됩니다. (디폴트값은 false입니다.)
setDuration(durationMillis); 은 지속시간 설정입니다. 밀리초단위이니 1초라면 1000을 넣으면 됩니다.
제가 쓴건 Type까지 지정해주는 방식인데요.
Animation.RELATIVE_TO_SELF 는 뷰자신의 크기를 기준으로 이동하는 타입입니다.
fromX, toX, fromY, toY 는 전부 flaot 형이며
예를들어 지금의 위치에서 5초에걸쳐서 오른쪽으로 뷰자신의 크기만큼 이동하고 싶으면
ImageView img = (ImageView)findViewById(R.id.xxxx);
TranslateAnimation ani = new TranslateAnimation(
Animation.RELATIVE_TO_SELF, 0.0f,
Animation.RELATIVE_TO_SELF, 1.0f,
Animation.RELATIVE_TO_SELF, 0.0f,
Animation.RELATIVE_TO_SELF, 0.0f);
ani.setDuration(5000);
img.startAnimation(ani);
이런식으로 주시면됩니다.
인자값을 마이너스 로줘서 화면밖에서 부터 시작하거나 화면밖으로 나가게하는것도 가능합니다.