[ Android ] 트윈 애니메이션
이 글은 부스트코스 강의를 공부하며 요약한 글입니다.
CatServant
Tweened Animation
Thread Animation이 만화 같은 효과를 만들어내는 기본적인 방법이지만 각각의 프레임을 모두 이미지로 그려야 한다는 것은 힘든 일입니다. 동일한 이미지가 움직이도록 만드는 경우 직접 이미지를 그리지 않고 프로그램이 이미지의 위치를 약간 바꾸고 화면에 뿌려주도록 하는 방법을 사용하는 것이 더 편리합니다.
이러한 방식으로 Animation 을 동작시키는 것이 Tweened Animation입니다.
트윈 애니메이션(Tweened Animation)은 보여줄 대상을 적절하게 연산한 후 그 결과를 연속적으로 디스플레이하는 방식을 제공합니다. Frame Animation 처럼 변경하면서 보여줄 각각의 이미지를 추가할 필요 없이 Animation 대상과 변환 방식을 지정하면 시스템이 내부적으로 적절하게 연산하는 과정을 거칩니다.
- 트윈 애니메이션 대상과 애니메이션 효과
Code
- res / anim / scale.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<scale
android:pivotX="50%"
android:pivotY="50%"
android:fromXScale="1.0"
android:fromYScale="1.0"
android:toXScale="3.0"
android:toYScale="3.0"
android:duration="1500"/>
<scale
android:startOffset="1500"
android:pivotX="50%"
android:pivotY="50%"
android:fromXScale="1.0"
android:fromYScale="1.0"
android:toXScale="0.3"
android:toYScale="0.3"
android:duration="1500"/>
</set>
여러 애니메이션 동작을 하나의 파일에 정의할 때 <set> tag가 사용됩니다. <set> 태그 안에는 여러 개의 tag가 들어갈 수 있습니다. resource로 포함된 애니메이션 액션 정의는 다른 리소스와 마찬가지로 빌드할 때 컴파일 되어 설치 파일에 포함됩니다.
- MainActivity.java
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button = (Button) findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Animation scale = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.scale);
v.startAnimation(scale);
}
});
}
}
출처
1. https://www.edwith.org/boostcourse-android/lecture/17112/
2. https://developer.android.com/guide/topics/resources/animation-resource.html
[LECTURE] 1) 트윈 애니메이션 : edwith
들어가기 전에 스레드 애니메이션이 만화 같은 효과를 만들어내는 가장 기본적인 방법이긴 하지만 각각의 프레임을 모두 이미지로 그려야 한다는 번거로움이 있습니다. 장편 만화영화의 경우... - 부스트코스
www.edwith.org
애니메이션 리소스 | Android 개발자 | Android Developers
애니메이션 리소스는 다음 두 가지 유형의 애니메이션 중 하나를 정의할 수 있습니다. 속성 애니메이션 설정된 시간 경과에 따른 객체의 속성 값을 Animator로 수정하여 애니메이션을 만듭니다. 뷰 애니메이션 뷰 애니메이션 프레임워크로 만들 수 있는 애니메이션에는 두 가지 유형이 있습니다. 속성 애니메이션 XML로 정의된 애니메이션으로, 설정된 시간 경과에 따른 타겟 객체의 속성(예: 배경 색상이나 알파 값)을 수정합니다. 파일 위치: res/animato
developer.android.com