Fade In, Fade Out

매일 수정하는 GNOSS LV5·2022년 2월 24일
1

AndroidStudio

목록 보기
51/83
post-custom-banner

visibility를 이용한 true,false로 아이콘을 상황에 맞추어 보여주고 지울수 있다.
하지만 갑작스럽게 사라지고 나타난다면 유저로 하여금 당황스러움을 줄 수 있다.

안드로이드에서는 이에 따른 Fade In, Fade Out 애니메이션을 지원하고있고 2가지 방법이 있다.


1. ObjectAnimator를 이용한 애니메이션

Fade In

val fadeIn = ObjectAnimator.ofFloat(Fade In을 적용시킬 뷰, "alpha", 0f, 1f)
//FadeIn되는데 걸리는 시간 (ms)
fadeIn.duration = 400
fadeIn.start()

Fade Out

val fadeOut = ObjectAnimator.ofFloat(Fade Out을 적용시킬 뷰, "alpha", 1f, 0f)
//FadeOut되는데 걸리는 시간 (ms)
fadeOut.duration = 400
fadeOut.start()

Fade In & Out 리스너

fadeIn.addListener(object : Animator.AnimatorListener{
    override fun onAnimationRepeat(animator: Animator?) {
        // TODO       
    }

    override fun onAnimationEnd(animator: Animator?) {
        // TODO 
    }

    override fun onAnimationCancel(animator: Animator?) {
        // TODO         
    }

    override fun onAnimationStart(animator: Animator?) {
        // TODO          
    }
})

2. Animation Util을 이용하는 방법

Xml작성

res - anim directory에 생성.

//Fade In
<?xml version="1.0" encoding="utf-8"?>
<alpha xmlns:android="http://schemas.android.com/apk/res/android"
    android:interpolator="@android:anim/accelerate_interpolator"
    android:fromAlpha="0.0"
    android:toAlpha="1.0"
    android:duration="@android:integer/config_shortAnimTime" />
//Fade Out
<?xml version="1.0" encoding="utf-8"?>
<alpha xmlns:android="http://schemas.android.com/apk/res/android"
    android:interpolator="@android:anim/accelerate_interpolator"
    android:fromAlpha="0.0"
    android:toAlpha="1.0"
    android:duration="@android:integer/config_shortAnimTime" />

코드 작성

//애니메이션을 생성하고
lateinit var fadeInAnim : Animation
lateinit var fadeOutAnim : Animation
//애니매이션을 초기화해준다.
fadeInAnim = AnimationUtils.loadAnimation(context, R.anim.fade_in)
fadeOutAnim = AnimationUtils.loadAnimation(context, R.anim.fade_out)

fadeIn을 적용시킬 뷰.startAnimation(fadeInAnim)
fadeOut을 적용시킬 뷰.startAnimation(fadeOutAnim)
profile
러닝커브를 따라서 등반중입니다.
post-custom-banner

0개의 댓글