Android 개발 Tip.
- Animation Time Delay
애니메이션 지연 실행 방법
애니메이션을 시간차 실행하기
시간 지연 설정 및 순차적 시작
-> 애니메이션에 시작 지연을 주고 싶거나
-> 여러 개의 애니메이션을 순차적으로 시작되게 하고 싶을 때가 있다.
방법은 간단하다
startOffset 을 쓰면 된다.
1. 시작 지연 설정하는 법
andoird:startOffset 속성을 추가한다.
0.5초 지연을 주고 투명도 (alpha) 애니메이션 실행
1
2
3
4
5
6
7
|
<?xml version="1.0" encoding="utf-8"?>
<alpha xmlns:android="http://schemas.android.com/apk/res/android">
android:duration="1000"
android:startOffset="500"
android:fromAlpha="0.0"
android:toAlpha="1.0" />
</alpha>
|
cs |
startOffset : 지연 시간 설정 (500 = 0.5초 지연)
2. 여러 애니메이션을 순차적으로 실행하는 법
버튼 3개가 하나씩 순차적으로 나타나는 애니메이션을 가정하자.
그러면
- alpha 애니메이션 파일을 3개 만들어서
- 각각 지연시간을 다르게 주고
- 각각 startAnimation()을 주면 된다.
alpha1.xml -> 0.5초 후 시작
1
2
3
4
5
6
7
|
<?xml version="1.0" encoding="utf-8"?>
<alpha xmlns:android="http://schemas.android.com/apk/res/android">
android:duration="1000"
android:startOffset="500"
android:fromAlpha="0.0"
android:toAlpha="1.0" />
</alpha>
|
cs |
alpha2.xml -> 1초 후 시작 ( = alpha1이 시작하고 0.5초 후 시작)
1
2
3
4
5
6
7
|
<?xml version="1.0" encoding="utf-8"?>
<alpha xmlns:android="http://schemas.android.com/apk/res/android">
android:duration="1000"
android:startOffset="1000"
android:fromAlpha="0.0"
android:toAlpha="1.0" />
</alpha>
|
cs |
alpha3.xml -> 1.5초 후 시작 ( = alpha2가 시작하고 0.5초 후 시작)
1
2
3
4
5
6
7
|
<?xml version="1.0" encoding="utf-8"?>
<alpha xmlns:android="http://schemas.android.com/apk/res/android">
android:duration="1000"
android:startOffset="1500"
android:fromAlpha="0.0"
android:toAlpha="1.0" />
</alpha>
|
cs |
MainActivity
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
// 1. 변수 선언
Animation anim_alpha1, anim_alpha2, anim_alpha3;
Button btn1, btn2, btn3;
// 2. 리소스 할당
anim_alpha1 = AnimationUtils.loadAnimation(getApplicationContext(),R.anim.alpha1);
anim_alpha2 = AnimationUtils.loadAnimation(getApplicationContext(),R.anim.alpha2);
anim_alpha3 = AnimationUtils.loadAnimation(getApplicationContext(),R.anim.alpha3);
btn1 = findViewById(R.id.btn1);
btn2 = findViewById(R.id.btn2);
btn3 = findViewById(R.id.btn3);
// 3. 버튼 누르면 애니메이션 실행
btn1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
btn1.startAnimation(anim_alpha1);
btn1.startAnimation(anim_alpha2);
btn1.startAnimation(anim_alpha3);
}
});
|
cs |
이렇게 하나하나 안 하고 초간단하게 구현하는 방법은 없을까?
구글링을 나름 꽤 많이 해봤는데
간단하게 구현하는 방법은 없었다.
내가 검색 능력이 부족한건지 진짜 없는건지
stackoverflow를 뒤져봐도 한 번에 간단히 처리하는 방법은 없었다...
있으면 누가 알려주세요...
'Android 개발 > android :: Tip' 카테고리의 다른 글
[안드로이드 Dialog] AlertDialog 폰트 자체적으로 설정하는 방법 (0) | 2020.08.02 |
---|---|
[안드로이드 스튜디오] 시작화면 설정하기 (프로젝트 선택 or 이전 프로젝트 자동 실행) (0) | 2020.08.01 |
[안드로이드 Activity] startActivityForResult 사용법 및 startActivity와 차이점 (0) | 2020.05.28 |
[안드로이드 Activity] 액티비티 화면 켜짐 유지 및 해제 코드 (Keep Screen On - 화면을 꺼지지 않게 유지하기) (0) | 2020.05.23 |
[안드로이드 XML] 자동으로 코드 줄바꾸고 들여쓰기 (0) | 2020.04.04 |
[안드로이드 View] Textview 또는 Button 기본 여백 제거하기 (0) | 2020.04.03 |
[안드로이드 Animation] 액티비티 전환 애니메이션 설정, 해제, overridePendingTransition 안되는 경우 (1) | 2019.11.27 |
[안드로이드] 플랫폼 버전별 API 레벨 및 버전코드 정리 (20.08.01 updated) (0) | 2019.11.11 |
댓글