종류 :
1. 회전 (rotate) : 중심점(pivot)을 기준으로 회전하는 애니메이션
2. 크기 (scale) : 중심점(pivot)을 기준으로 크기가 커지거나 줄어드는 애니메이션
3. 투명도 (alpha) : View가 흐려지거나 다시 진해지는 애니메이션
4. 이동 (translate) : View가 상,하,좌,우로 이동하는 애니메이션
5. 복합 애니메이션 (set) : 여러 애니메이션을 중첩하는 애니메이션
// slide_Up.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/linear_interpolator">
<translate
android:duration="3000"
android:fromYDelta="100%"
android:toYDelta="0">
</translate>
</set>
android:duration="3000" // 3초에 걸쳐서 애니메이션 실행
// slide_Down.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/linear_interpolator">
<translate
android:duration="3000"
android:fromYDelta="-100%"
android:toYDelta="0">
</translate>
</set>
// slide_Left.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:duration="500"
android:fromXDelta="-100%"
android:toXDelta="0">
</translate>
</set>
// slide_right.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:duration="500"
android:fromXDelta="100%"
android:toXDelta="0">
</translate>
</set>
// drop_down.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<scale
android:duration="500"
android:fromXScale="100%"
android:fromYScale="0"
android:toXScale="100%"
android:toYScale="100%"
>
</scale>
</set>
// 적용 방법
layout_login = findViewById(R.id.layout_login);
Animation aniSlide = AnimationUtils.loadAnimation(getApplicationContext(),R.anim.slide_up);
layout_login.startAnimation(aniSlide);
//안드로드이드 디벨로퍼 예시
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@[package:]anim/interpolator_resource"
android:shareInterpolator=["true" | "false"] >
<alpha
android:fromAlpha="float"
android:toAlpha="float" />
<scale
android:fromXScale="float"
android:toXScale="float"
android:fromYScale="float"
android:toYScale="float"
android:pivotX="float"
android:pivotY="float" />
<translate
android:fromXDelta="float"
android:toXDelta="float"
android:fromYDelta="float"
android:toYDelta="float" />
<rotate
android:fromDegrees="float"
android:toDegrees="float"
android:pivotX="float"
android:pivotY="float" />
<set>
...
</set>
</set>
<set>
다른 애니메이션 요소(<alpha>, <scale>, <translate>, <rotate>)
또는 기타 <set> 요소를 갖고 있는 컨테이너.
AnimationSet를 나타냅니다.
set속성 :
android:interpolator
보간 리소스. 애니메이션에서 적용할 Interpolator입니다.
값은 보간 클래스 이름이 아닌 보간을 지정하는 리소스 참조여야 합니다.
플랫폼에서 제공되는 기본 보간 리소스를 사용하거나 고유한 자체 보간 리소스를 만들 수 있습니다.
보간에 관한 자세한 내용은 아래 설명을 참조하세요.
android:shareInterpolator
모든 하위 요소 간에 동일한 보간을 공유하려면 'true'를 설정합니다.
<alpha>
페이드 인 또는 페이드 아웃 애니메이션. AlphaAnimation을 나타냅니다.
alpha 속성:
android:fromAlpha
부동소수점. 시작 불투명도 오프셋으로, 여기서 0.0은 투명이고 1.0은 불투명입니다.
android:toAlpha
부동소수점. 끝 불투명도 오프셋으로, 여기서 0.0은 투명이고 1.0은 불투명입니다.
<alpha>에서 지원하는 추가 속성은 Animation 클래스 참조
(이 클래스 참조의 모든 XML 속성은 이 요소에 의해 상속됨)를 참조하세요.
<scale>
크기 조절 애니메이션. pivotX 및 pivotY를 지정하여
이미지가 바깥쪽(또는 안쪽)으로 커지기 시작하는 이미지의 중심점을 지정할 수 있습니다.
예를 들어 값이 0, 0(왼쪽 상단)이면 일제히 오른쪽 아래로 커집니다. ScaleAnimation을 나타냅니다.
scale 속성:
android:fromXScale
부동소수점. 시작 X 크기 오프셋으로, 여기서 1.0은 변경이 없다는 뜻입니다.
android:toXScale
부동소수점. 끝 X 크기 오프셋으로, 여기서 1.0은 변경이 없다는 뜻입니다.
android:fromYScale
부동소수점. 시작 Y 크기 오프셋으로, 여기서 1.0은 변경이 없다는 뜻입니다.
android:toYScale
부동소수점. 끝 Y 크기 오프셋으로, 여기서 1.0은 변경이 없다는 뜻입니다.
android:pivotX
부동소수점. 객체가 확장될 때 고정된 상태로 유지되는 X 좌표입니다.
android:pivotY
부동소수점. 객체의 크기가 확장될 때 고정된 상태로 유지되는 Y 좌표입니다.
<scale>에서 지원하는 추가 속성은 Animation 클래스 참조
(이 클래스 참조의 모든 XML 속성은 이 요소에 의해 상속됨)를 참조하세요.
<translate>
수직 및/또는 수평 모션. 세 가지 형식의 속성을 지원합니다.
'%'로 끝나는 -100~100의 값(자신을 기준으로 한 백분율을 나타냄)과
'%p'로 끝나는 -100~100의 값(상위 요소를 기준으로 한 백분율),
접미사 없는 부동소수점 값(절댓값을 나타냄)을 각각 지원합니다. TranslateAnimation을 나타냅니다.
translate 속성
android:fromXDelta
부동소수점 또는 백분율. 시작 X 오프셋입니다.
법선 위치를 기준으로 한 픽셀(예: "5")로 표현되거나
요소 너비를 기준으로 한 백분율(예: "5%") 또는
상위 요소 너비를 기준으로 한 백분율(예: "5%p")로 표현됩니다.
android:toXDelta
부동소수점 또는 백분율. 끝 X 오프셋입니다.
법선 위치를 기준으로 한 픽셀(예: "5")로 표현되거나 요소 너비를 기준으로 한 백분율(예: "5%")
또는 상위 요소 너비를 기준으로 한 백분율(예: "5%p")로 표현됩니다.
android:fromYDelta
부동소수점 또는 백분율. 시작 Y 오프셋입니다.
법선 위치를 기준으로 한 픽셀(예: "5")로 표현되거나
요소 높이를 기준으로 한 백분율(예: "5%") 또는
상위 요소 높이를 기준으로 한 백분율(예: "5%p")로 표현됩니다.
android:toYDelta
부동소수점 또는 백분율. 끝 Y 오프셋입니다.
법선 위치를 기준으로 한 픽셀(예: "5")로 표현되거나
요소 높이를 기준으로 한 백분율(예: "5%") 또는
상위 요소 높이를 기준으로 한 백분율(예: "5%p")로 표현됩니다.
<translate>에서 지원하는 추가 속성은 Animation 클래스 참조
(이 클래스 참조의 모든 XML 속성은 이 요소에 의해 상속됨)를 참조하세요.
<rotate>
회전 애니메이션. RotateAnimation을 나타냅니다.
rotate 속성:
android:fromDegrees
부동소수점. 시작 각도 위치(단위: 도)입니다.
android:toDegrees
부동소수점. 끝 각도 위치(단위: 도)입니다.
android:pivotX
부동소수점 또는 백분율. 회전 중심의 X 좌표입니다.
객체의 왼쪽 가장자리를 기준으로 한 픽셀(예: "5")로 표현되거나
객체의 왼쪽 가장자리를 기준으로 한 백분율(예: "5%") 또는
상위 컨테이너의 왼쪽 가장자리를 기준으로 한 백분율(예: "5%p")로 표현됩니다.
android:pivotY
부동소수점 또는 백분율. 회전 중심의 Y 좌표입니다.
객체의 상단 가장자리를 기준으로 한 픽셀(예: "5")로 표현되거나
객체의 상단 가장자리를 기준으로 한 백분율(예: "5%") 또는
상위 컨테이너의 상단 가장자리를 기준으로 한 백분율(예: "5%p")로 표현됩니다.
<rotate>에서 지원하는 추가 속성은 Animation 클래스 참조
(이 클래스 참조의 모든 XML 속성은 이 요소에 의해 상속됨)를 참조하세요.
액티비티 관련 애니메이션
//다른 액티비티 호출 시
startActivity(intent);
overridePendingTransition(R.anim.rightin_activity,R.anim.not_move_activity);
//현재 액티비티 종료 시
finish();
overridePendingTransition(R.anim.not_move_activity,R.anim.rightout_activity);
애니메이션 리스너
@Override
public void onBackPressed() {
Animation aniSlide = AnimationUtils.loadAnimation(getApplicationContext(),R.anim.slide_down);
layout_login.startAnimation(aniSlide);
aniSlide.setAnimationListener(new Animation.AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {
}
@Override
public void onAnimationEnd(Animation animation) {
Log.d("Woongs","에니메이션 종료 ");
finish();
overridePendingTransition(0,0);
}
@Override
public void onAnimationRepeat(Animation animation) {
}
});
}
'Android' 카테고리의 다른 글
Android 카메라 / 갤러리 저장하기 ( Q Scoped Storage) (1) | 2021.03.12 |
---|---|
Sms Retriever ( 안드로이드 문자 메세지 수신 ) (3) | 2021.03.09 |
android ViewPager2 : 안드로이드 뷰 페이저 (0) | 2021.02.06 |
Android UI BottomSheetDialogFragment (0) | 2021.01.21 |
Android 커스텀 다이얼로그 (0) | 2021.01.21 |