-
[Android] 안드로이드 애니메이션(Animation) 구현 (1) - Rotate안드로이드 스튜디오 2022. 9. 16. 22:44
1. Animation - Rotate 개요
Animation 기능은 안드로이드의 View를 더욱 생동감 넘치게 해주는 효과를 제공합니다. 그중 회전 효과인 Rotate에 대해 알아보겠습니다.
2. Animation - Rotate 구현 (XML)
main.xml<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" android:orientation="vertical"> <ImageButton android:id="@+id/imgBtn" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/ic_launcher" android:background="@android:color/transparent"/> </LinearLayout>
이미지버튼을 하나 추가해주고 이 버튼을 눌렀을 때 돌아가는 효과를 구현해보겠습니다.
rotate.xml
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" android:duration="1000" android:interpolator="@android:anim/accelerate_interpolator"> <rotate android:fromDegrees="0" android:pivotX="50%" android:pivotY="50%" android:toDegrees="360" /> </set>
Anim 폴더에 rotate.xml을 생성 후
1초간 기준점의 중간에서 360도 회전하는 효과를 부여해줍니다.
accelerate_interpolator 값을 추가해주면 살짝의 가속도가 붙습니다.3. Animation - Rotate 구현 (Java)
MainActivity.javapublic class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); ImageButton imgBtn = findViewById(R.id.imgBtn); final Animation rotation = AnimationUtils.loadAnimation(MainActivity.this, R.anim.rotate); imgBtn.setOnClickListener(new View.OnClickListener(){ @Override public void onClick(View v) { v.startAnimation(rotation); } }); } }
AnimationUtils.loadAnimation(Context context, int id): 불러오고자 하는 애니메이션 효과를 선언합니다.
startAnimation(Animation animation): 애니메이션을 시작하고자 하는 구간에서 사용합니다.4. 실제 구현 화면
개발자 문서:
https://developer.android.com/reference/android/view/animation/RotateAnimation'안드로이드 스튜디오' 카테고리의 다른 글
[Android] 안드로이드 애니메이션(Animation) 구현 (4) - Alpha (투명도) (0) 2022.09.17 [Android] 안드로이드 Animation 구현 (3) - Scale (크기 변경) (0) 2022.09.17 [Android] 안드로이드 애니메이션(Animation) 구현 (2) -Translate(좌표 이동) (0) 2022.09.17 [Android] 안드로이드 토스트(Toast) 사용하기 (0) 2022.09.14 [Android] 안드로이드 NumberPicker 사용하기 (0) 2022.09.13 댓글