Activity를 전환할때 서서히 나오고 사라지는 등의 애니메이션을 넣을 수 있다
당연히 Activity가 아닌 일반 View 도 가능하다
하지만 View 에서는 한가지 주의할 점이 있다.
Activity는 전환 애니메이션을 마치면 자동으로 생성되거나 없어지지만
View는 그렇지 않다는 것이다.
즉, 애니메이션이 시작 또는 끝날때 View를 부모뷰에서 빼고 넣거나 보이게 또는 보이지 않게 처리 해주어야 한다.
애니메이션을 불러와 시작하는 코드
//나오기
fun startAnimationWithShow(context: Context, view: View, id: Int) {
view.visibility = View.VISIBLE //애니메이션 전에 뷰를 보이게 한다
view.startAnimation(AnimationUtils.loadAnimation(context, id)) //애니메이션 설정&시작
}
//사라지기
fun startAnimationWithHide(context: Context, view: View, id: Int) {
val exitAnim = AnimationUtils.loadAnimation(context, id) //애니메이션 설정
exitAnim.setAnimationListener(HideAnimListener(view)) //리스너를 통해 애니메이션이 끝나면 뷰를 감춘다
view.startAnimation(exitAnim) //애니메이션 시작
}
애니메이션이 끝날때 이벤트를 잡기 위한 리스너
//애니메이션 리스너
class HideAnimListener(private val view: View): Animation.AnimationListener {
override fun onAnimationStart(p0: Animation?) {
}
//애니메이션이 끝나면 뷰를 감춘다
override fun onAnimationEnd(p0: Animation?) {
view.visibility = View.GONE
}
override fun onAnimationRepeat(p0: Animation?) {
}
}
에니메이션 동작
여기서는 간단한 예로 투명도를 조절해 서서히 나오고 들어가게 했다.
크기나 위치가 변경되는 등의 구미에 맞는 애니메이션을 넣으면 된다
//enter.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<alpha android:fromAlpha="0" android:toAlpha="1"
android:duration="300"/>
</set>
//exit.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<alpha android:fromAlpha="1" android:toAlpha="0"
android:duration="300"/>
</set>
Activity 에서 동작을 각각 실행해 보자
startAnimationWithShow(this, myView, R.anim.enter)
startAnimationWithHide(this, myView, R.anim.exit)
도움이 되셨다면~ 정성으로 빚은 저희 앱! 많은 이용 바래요:)
https://meorimal.com/index.html?tab=spaceship
https://meorimal.com/subway.html
사업자 정보 표시
주식회사 머리말 | 고영진 | 서울특별시 송파구 중대로 135 서관 10층 (가락동, 아이티벤처타워) | 사업자 등록번호 : 524-88-00727 | TEL : 010-9990-3674 | Mail : gyjmeba@hanmail.net | 통신판매신고번호 : 2017-서울강남-03941호 | 사이버몰의 이용약관 바로가기
'개발 > android' 카테고리의 다른 글
seekbar로 만든 진행바에 터치가 안되게 하기 (0) | 2020.03.24 |
---|---|
날짜 텍스트에 일수를 더해보자 (0) | 2020.01.31 |
drawText의 문자가 밑으로 삐져나오지 않게 하기 (0) | 2019.06.24 |
FragmentPaper에서 ListView가 매번 초기화되지 않도록 하기 (0) | 2019.05.23 |
객체 속도가 빠를수록 충돌검사가 부정확해진다면 (0) | 2019.04.02 |