-
[ Android ] 트윈 애니메이션Android 2020. 3. 30. 15:09
이 글은 부스트코스 강의를 공부하며 요약한 글입니다.
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); } }); } }
출처
'Android' 카테고리의 다른 글
[ Android ] 스플래시 화면 ( 로딩 화면 ) (0) 2020.04.02 [ Android ] ListView (0) 2020.03.31 [ Android ] 페이지 슬라이딩 (0) 2020.03.31 [ Android ] 스레드 애니메이션 (0) 2020.03.27 [ Android ] 인텐트 (0) 2020.03.03