Notice
Recent Posts
Recent Comments
Link
«   2025/06   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
Archives
Today
Total
관리 메뉴

COCSOS - guitar, computer, etc

220405 애니메이션 훑기 본문

Computer/android

220405 애니메이션 훑기

COCSOS 2022. 4. 5. 00:57

안드로이드 애니메이션

Animation UseCase

Click Animation?
AnimatedStateListDrawable
state 에 따라 변경 가능



iv.setOnClickListener{
it.isSelected = true;
}

AnimatedVectorDrawable


->vector drawable? 개발자 손이 감

shape Shifer
PathData 간 morph효과

ripple

Activity, Fragment 전환 시 콘텐츠 이어지는 것처럼 보여주기

프로필 사진을 확대하거나
이미지 목록 화면에서 사용할때

transition 동일한 이름으로 설정해서 연결



-> 실행
ActivityCompat.startActivity(context, intent,
!!! ActivityOptionsCompat.makeSceneTransitionAnimation(context, view, view.transitionName).toBundle!!!)

-> 수신
override fun onCreate(savedInstanceState:Bundle?){
window.sharedElementEnterTransition = //윈도우의 속성을 지정해줘야한다.
TransitionSet().apply{
interpolator = Overshootinterpolator(0.7f) //튕기는 느낌(바운스)
ordering = TransitionSet.ORDERING_TOGETHRER
addTransition(ChangreBounds().apply{
pathMotion = ArcMotion() //일직선이 아닌 부드럽게 이동하는 아크모션
})
addTransition(ChangeTransform()) //센터크롭->센터인사이트로 스케일 타입 변경 등
addTransition(ChangeClipBounds())
addTransition(ChangeImageTransform())
}
}
// 추가적인 세팅 도 있다.
super.onCreate(savedInstanceState)
}

Activity / Fragment 화면 전환 시

단순 animation 설정

tab 좌우 이동?
액티비티에선
activity.overridePendingTransition()
fragment에선
fragmentManager.beginTransition
.setCustomAnimation(
R.anim.slide_in_right, //enter
R.anim.slide_out_left, //exit
)
.replcae()
.commit()

묶어서



공통으로

  <alpht />

  <translate/>
  <sclae/>
  <rotation/>
  <set /> <!--중첩가능-->

TransitionManager

상태에 따라 layout이 변경되어야하는 경우
TransitionManager 등을 사용할 수 있다.

if constraint Layout을 사용하고 있다면 guideline을 활용하는 것이 편리함
parent에 chain을 거는 대신 bottomGuideLine, barrier 등으로 변경하는 등.

사진 편집 모드 / 폴더블 상태 등에서 사용하면 좋을듯

val layout = binding.root
val constraintSet = ConstraintSet().apply{
    clone(layout)
    if(fold){
        setGuidelinePercent(R.id.fold_guide, 0.5f)
    }else{
        setGuidelinePercent(R.id.fold_guide, 1f)
    }
}

TransitionManager.beginDelayedTransition (layout)
constraintSet.applyTo(layout)

이외에도

Animator, ViewPropertyAnimator, DynamicAnimation, LayoutTransition,CircularReveal,MotionLayout
등 다양함

'Computer > android' 카테고리의 다른 글

191205 App Widget 정리 - 1  (0) 2019.12.05
181004 RxJava2+Retrofit2+lambda정리  (0) 2018.10.05
181002 Retrofit2 설명, 차이와 사용법  (0) 2018.10.04
Comments