안드로이드에서 하나의 뷰에 대한 특정 속성값을 애니메이션화하기 위한 API인 ViewPropertyAnimator에 대한 내용입니다. 먼저 아래와 같은 레이아웃에 애니메이션을 위한 버튼 뷰를 하나 배치합니다.
<?xml version="1.0" encoding="utf-8"?> <ScrollView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:scrollbars="none"> <Button android:id="@+id/myView" android:layout_width="80dp" android:layout_height="80dp" android:layout_marginTop="8dp" android:layout_marginBottom="8dp" android:text="Hello" /> </ScrollView>
이제 버튼을 터치할때 애니매이션이 시작될 수 있도록 다음 코드를 추가합니다.
myView.setOnClickListener { myView .animate() .scaleX(5.0f) .scaleY(5.0f) .alpha(0.0f) .translationX(400.0f) .translationY(400.0f) .rotation(360.0f) .setDuration(1000) .withStartAction { Toast.makeText(this, "애니메이션 시작", Toast.LENGTH_SHORT).show() } .withEndAction { myView.scaleX = 1.0f; myView.scaleY = 1.0f; myView.alpha = 1.0f; myView.x = 0.0f; myView.y = 0.0f; myView.rotation = 0.0f; Toast.makeText(this, "완료", Toast.LENGTH_SHORT).show() }.start() }
참고로 언어는 코들린입니다. 1초간 뷰의 크기를 5배로, 점점 투명하게, X와 Y의 위치를 각각 400과 400으로, z축으로 360회전 하도록 하는애니메이션입니다. 그 결과는 아래와 같습니다.