하루플스토리
Home
  • 전체보기 (253)
    • 개발 (104)
      • Android (68)
      • IOS (1)
      • 코딩테스트 (34)
      • 딥러닝 (1)
    • 블로그 (9)
      • 공지사항 (4)
      • 이슈, 유머 (5)
    • 일상 (17)
      • 일상 (9)
      • 전자제품 (7)
      • 사진 (1)
    • 메이플 (120)
      • 메이플스토리 (120)
Home
  • 전체보기 (253)
    • 개발 (104)
      • Android (68)
      • IOS (1)
      • 코딩테스트 (34)
      • 딥러닝 (1)
    • 블로그 (9)
      • 공지사항 (4)
      • 이슈, 유머 (5)
    • 일상 (17)
      • 일상 (9)
      • 전자제품 (7)
      • 사진 (1)
    • 메이플 (120)
      • 메이플스토리 (120)
블로그 내 검색
Github

하루플스토리

안드로이드 개발자 하루플 입니다 GitHub 놀러와주세요!😊

  • 개발/Android

    [Kotlin] 안드로이드스튜디오 뷰 사이즈를 조절하는 애니메이션

    2023. 3. 14.

    by. 하루플스토리

    안녕하세요, 하루플입니다.

     

    앱을 개발할 때 여러 애니메이션을 적용하게 되면서 애니메이션 클래스를 따로 만들어두고 함수만 가져와서 쉽게 사용할 수 있도록 개발하고 있습니다.

    이번에는 뷰 사이즈를 조절하는 코드 두가지를 알려드리겠습니다.

     

     

    아래는 뷰 가로 사이즈를 변경하는 코드입니다.

    fun View.animateViewWidth(duration: Long, startWidth: Int, endWidth: Int) {
        val animation = object : Animation() {
            override fun applyTransformation(interpolatedTime: Float, t: Transformation) {
                val newWidth = (startWidth + (endWidth - startWidth) * interpolatedTime).toInt()
                val params = this@animateViewWidth.layoutParams as ViewGroup.LayoutParams
                params.width = newWidth
                this@animateViewWidth.layoutParams = params
            }
        }
        animation.duration = duration
        this@animateViewWidth.startAnimation(animation)
    }

    사용할 때는 binding.textView.animateViewWidth() 이렇게 사용하면 됩니다.

    위 코드의 width를 height로 바꿔서 높이를 바꾸는 애니메이션을 적용할 수 있습니다.

     

     

    아래는 ValueAnimator를 이용해 뷰 가로 사이즈를 변경하는 코드입니다.

    작동 결과는 위 코드와 동일합니다. 두가지 중 더 보기 쉬운 코드로 작성하면 될 것 같습니다.

    fun View.animateViewWidth(duration: Long, startWidth: Int, endWidth: Int) {
        val valueAnimator = ValueAnimator.ofInt(startWidth, endWidth)
        valueAnimator.addUpdateListener { animation ->
            val newWidth = animation.animatedValue as Int
            val params = this@animateViewWidth.layoutParams as ViewGroup.LayoutParams
            params.width = newWidth
            this@animateViewWidth.layoutParams = params
        }
        valueAnimator.duration = duration
        valueAnimator.start()
    }
    저작자표시 비영리 동일조건 (새창열림)

    '개발 > Android' 카테고리의 다른 글

    [Kotlin] 안드로이드스튜디오 다양한 형식의 자료형 Intent 활용 방법  (0) 2023.04.06
    [Android] 이펙티브 코틀린 3장 재사용성  (0) 2023.03.20
    [Kotlin] 안드로이드스튜디오 RecyclerView 스크롤시 데이터가 섞이는 문제 해결방법  (0) 2023.03.07
    안드로이드스튜디오 xml 프리뷰가 표시되지 않는 문제  (0) 2023.03.06
    안드로이드 대형 화면 플랫폼 최적화  (0) 2023.03.05

    댓글

    관련글

    • [Kotlin] 안드로이드스튜디오 다양한 형식의 자료형 Intent 활용 방법 2023.04.06
    • [Android] 이펙티브 코틀린 3장 재사용성 2023.03.20
    • [Kotlin] 안드로이드스튜디오 RecyclerView 스크롤시 데이터가 섞이는 문제 해결방법 2023.03.07
    • 안드로이드스튜디오 xml 프리뷰가 표시되지 않는 문제 2023.03.06
    맨 위로
전체 글 보기
Tistory 로그인
Tistory 로그아웃
로그아웃 글쓰기 관리

Today

Total

Powered by ⓒ Kakao Corp.

Designed by Nana
블로그 이미지
하루플스토리

티스토리툴바