리사이클러뷰(RecyclerView)는 안드로이드 앱에서 리스트 항목을 표시하는 데 자주 사용됩니다. 하지만 때로는 텍스트나 이미지 외에도 동영상을 표시해야할 때가 있습니다. 이번에는 리사이클러뷰의 각 항목에 동영상 플레이어를 추가하는 방법에 대해 알아보겠습니다.
1. 리사이클러뷰 아이템 레이아웃 수정
먼저, 리사이클러뷰의 각 항목에 동영상을 표시하기 위해 레이아웃을 수정해야 합니다. 레이아웃 파일에 VideoView나 ExoPlayer와 같은 비디오 플레이어를 추가합니다.
예를 들어, 아래와 같이 레이아웃 파일을 수정할 수 있습니다.
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:id="@+id/titleTextView"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<VideoView
android:id="@+id/videoView"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
위 예제에서는 리사이클러뷰의 각 항목에 제목을 표시하는 TextView와 동영상을 플레이하는 VideoView를 추가했습니다.
2. 데이터 모델에 동영상 URL 추가
리사이클러뷰의 각 항목에 표시할 동영상의 URL을 데이터 모델에 추가해야 합니다. 각 항목의 모델 클래스에 동영상을 나타내는 문자열 필드를 추가합니다.
예를 들어, 데이터 모델 클래스에 videoUrl 필드를 추가할 수 있습니다.
data class VideoItem(
val title: String,
val videoUrl: String
)
3. 어댑터 수정
리사이클러뷰 어댑터에서는 각 항목의 뷰를 바인딩하고 동영상을 플레이해야 합니다. onBindViewHolder 메서드에서 VideoView에 동영상을 로드하고 시작하는 로직을 구현해야 합니다.
예를 들어, onBindViewHolder 메서드에서 VideoView에 동영상을 로드하는 코드는 다음과 같을 수 있습니다.
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
val item = items[position]
holder.titleTextView.text = item.title
holder.videoView.setVideoURI(Uri.parse(item.videoUrl))
holder.videoView.start()
}
위 예제에서는 onBindViewHolder 메서드에서 VideoView에 동영상을 로드하고 시작하도록 설정했습니다.
이제 리사이클러뷰 각 항목에 동영상 플레이어를 성공적으로 추가했습니다. 사용자는 각 항목을 스크롤할 때마다 동영상을 볼 수 있게 될 것입니다.
이러한 방법을 활용하여 안드로이드 앱에서 리사이클러뷰 아이템에 동영상 플레이어를 추가할 수 있습니다.