Source: https://www.edwith.org/boostcourse-android/lecture/17112/
1. 트윈 애니메이션
보여줄 대상을 연산한 후 그 결과를 연속적으로 보여준다.
애니메이션 대상(View, Drawable)과 변환 방식을 지정하면 애니메이션 효과가 생긴다.
효과: 위치이동(Traslate), 확대/축소(Scale), 회전(Rotate), 투명도(Alpha)
Interplator
accerlerate_interplator: 애니메이션 효과를 점점 빠르게 나타나도록 만듬
decerlerate_interplator: 애니메이션 효과를 점점 느리게 나타나도록 만듬
accerlerate_decerlerate_interplator: 애니메이션 효과를 점점 빠르다가 느리게 나타나도록 만듬
anticipate_interplator: 애니메이션 효과를 시작 위치에서 조금 뒤로 당겼다가 시작하도록 만듬
overshoot_interplator: 애니메이션 효과를 종료 위치에서 조금 지나쳤다가 종료되도록 만듬
2. 실행 결과 화면
3. activity_main.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:gravity="center" tools:context="com.tistory.qlyh8.practice.MainActivity"> <Button android:id="@+id/button" android:layout_width="100dp" android:layout_height="wrap_content" android:text="시작"/> </LinearLayout> | cs |
4. res/anim/scale.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | <?xml version="1.0" encoding="utf-8"?> <!-- 위치 이동: <translate>, 회전: <rotate>, 확대/축소: <scale>, 투명도: <alpha> 애니메이션 집합(여러 애니메이션 동작): <set> <set> 태그 안에는 여러 개의 태그가 들어갈 수 있다. startOffset: 시작시간 duration: 지속시간 pivotX, pivotY: X축, Y축 fromXScale,fromYScale: 시작할 때의 확대/축소비율 toXScale, toYScale: 끝날 때의 확대/축소비율 --> <!-- 원래의 크기에서 세 배의 크기로 확대되고, 줄어드는 애니메이션 --> <set xmlns:android="http://schemas.android.com/apk/res/android"> <scale android:duration="2500" android:pivotX="50%" android:pivotY="50%" android:fromXScale="1.0" android:fromYScale="1.0" android:toXScale="3.0" android:toYScale="3.0" /> <scale android:startOffset="1500" android:duration="2500" android:pivotX="50%" android:pivotY="50%" android:fromXScale="1.0" android:fromYScale="1.0" android:toXScale="0.3" android:toYScale="0.3" /> </set> | cs |
5. MainActivity.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | package com.tistory.qlyh8.practice; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.view.animation.Animation; import android.view.animation.AnimationUtils; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(final Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); findViewById(R.id.button).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Animation anim = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.scale); view.startAnimation(anim); } }); } } | cs |
6. 참고
- Animation Resources: https://developer.android.com/guide/topics/resources/animation-resource
- Animation and Transitions: https://developer.android.com/training/animation/
'Android' 카테고리의 다른 글
스플래시 화면 (Splash Screen) (0) | 2018.08.24 |
---|---|
슬라이딩 애니메이션 (Sliding Animation) (0) | 2018.08.24 |
스레드 애니메이션 (Thread Animation) (0) | 2018.08.24 |
RecyclerView (리사이클러뷰) (0) | 2018.08.23 |
음성 녹음하기 (0) | 2018.08.23 |