[Android/Kotlin] 리사이클러 뷰 아이템에 애니메이션 (view binding)

2023. 1. 3. 12:00·공부/Android Studio
728x90

<결과 화면>

 

리사이클러 뷰의 아이템들이 로딩될 때마다 점점 커지는 애니메이션을 만들어보려고 한다.

 

애니메이션에 대한 코드는 res/anim 디렉토리에 xml파일로 만들면 된다.

 

만약 anim 디렉토리가 없다면 새로 만들어준다.

 

<res/anim/rec_animation.xml>

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
            <scale
                android:pivotX="50%"
                android:pivotY="50%"
                android:fromXScale="0"
                android:fromYScale="0"
                android:toXScale="1"
                android:toYScale="1"
                android:duration="500" />
</set>

애니메이션 파일을 만들었으면 리사이클러 뷰를 만들 차례인데 아래 포스팅을 참고하면 도움이 될 것 같다.

https://growth-coder.tistory.com/31

 

[Android/Kotlin] Recycler view 사용법

애플리케이션에서 동일한 형식을 가진 여러 개의 데이터를 출력해야 할 때가 있다. 예를 들어 특정 사이트의 회원 정보를 출력하여 관리할 때 회원 하나하나마다 레이아웃을 구성하는 것은 비

growth-coder.tistory.com

이 때는 User 객체의 배열을 만들어서 리사이클러 뷰를 만들었는데 이번 포스팅에서는 그냥 String의 배열로 리사이클러 뷰를 만들어보려 한다.

 

애니메이션 파일을 적용시키는 곳은 리사이클러뷰 어댑터의 onBindViewHolder 메소드이므로 이 메소드만 살짝 바꾸면 된다.

 

애니메이션을 적용시키지 않았다면 onBindViewHolder 메소드는 아래와 같을 것이다.

override fun onBindViewHolder(holder: Holder, position: Int) {
    holder.bind(datas[position])
}

 

위에서 만들었던 rec_animation.xml 파일을 불러와야 한다.

 

val animation = AnimationUtils.loadAnimation(holder.binding.root.context,R.anim.rec_animation)

 

AnimationUtils.loadAnimation 의 첫 번째 인자로 context, 두 번째 인자로 만들었던 애니메이션을 넣어준다.

holder.binding.root.animation = animation

 

그리고 적용시키면 된다.

 

<RecAdapter.kt 전체 코드>

class RecAdapter(val datas : Array<String>)
    : RecyclerView.Adapter<RecAdapter.Holder>() {


    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): Holder {
        val binding = RecAnimationBinding.inflate(LayoutInflater.from(parent.context))
        return Holder(binding)
    }

    override fun onBindViewHolder(holder: Holder, position: Int) {
        val animation = AnimationUtils.loadAnimation(holder.binding.root.context,R.anim.rec_animation)
        holder.binding.root.animation = animation
        holder.bind(datas[position])
    }

    override fun getItemCount() = datas.size

    class Holder(val binding: RecAnimationBinding) : RecyclerView.ViewHolder(binding.root) {
        fun bind(data: String) {
            binding.txtName.text = data



        }
    }
}
728x90

'공부 > Android Studio' 카테고리의 다른 글

[Android/Kotlin] AlarmManager 사용법  (2) 2023.01.05
[Android/Kotlin] Work Manager 사용법  (0) 2023.01.04
[Android/Kotlin] Foreground Service 사용 방법  (0) 2022.12.24
[Android/Kotlin] MVVM Repository 패턴을 활용하여 데이터베이스의 유저 정보 등록 및 출력  (0) 2022.12.23
[Android Studio] Firebase와 연결하기  (0) 2022.12.13
'공부/Android Studio' 카테고리의 다른 글
  • [Android/Kotlin] AlarmManager 사용법
  • [Android/Kotlin] Work Manager 사용법
  • [Android/Kotlin] Foreground Service 사용 방법
  • [Android/Kotlin] MVVM Repository 패턴을 활용하여 데이터베이스의 유저 정보 등록 및 출력
웅대
웅대
알고리즘과 백엔드를 중심으로 열심히 공부 중입니다! 같이 소통하며 공부해요!
    250x250
  • 웅대
    웅대 개발 블로그
    웅대
  • 전체
    오늘
    어제
    • 분류 전체보기
      • 백준 알고리즘
        • dp
        • 문자열
        • 정렬
        • 스택
        • 브루트 포스
        • 이진 탐색
        • 정리
        • 우선순위 큐
        • 자료구조
        • 그래프
        • 기타
        • 그리디
      • 컴퓨터 언어
        • Kotlin
        • Python
        • C#
      • 공부
        • Database
        • Android Studio
        • Algorithm
        • 컴퓨터 구조론
        • Spring
        • lombok
        • AWS
        • Network
        • OS
        • Git & GitHub
        • AI
        • Computer Vision
        • 보안
        • Nginx
        • 프론트
        • express
        • GCP
        • grokking concurrency
        • DevOps
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    다익스트라
    스택
    embedding
    influxDB CLI
    ci/cd
    스프링 OAuth2
    codetree
    parametric search
    openvidu 배포
    RNN
    Merge
    nn.RNN
    bfs
    AWS Lambda
    code tree
    푸쉬 알람
    binary search
    파이썬
    ChatPromptTemplate
    Vector Store
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
웅대
[Android/Kotlin] 리사이클러 뷰 아이템에 애니메이션 (view binding)
상단으로

티스토리툴바