1+ package com.rabimi.javaskinchanger
2+
3+ import android.graphics.BitmapFactory
4+ import android.view.LayoutInflater
5+ import android.view.View
6+ import android.view.ViewGroup
7+ import android.widget.ImageView
8+ import androidx.recyclerview.widget.RecyclerView
9+
10+ class SkinAdapter (
11+ private var paths : List <String >,
12+ private val onClick : (String ) -> Unit
13+ ) : RecyclerView.Adapter<SkinAdapter.ViewHolder>() {
14+
15+ class ViewHolder (view : View ) : RecyclerView.ViewHolder(view) {
16+ val imgSkin: ImageView = view.findViewById(R .id.imgSkinItem)
17+ }
18+
19+ override fun onCreateViewHolder (parent : ViewGroup , viewType : Int ): ViewHolder {
20+ val view = LayoutInflater .from(parent.context)
21+ .inflate(R .layout.item_skin, parent, false )
22+ return ViewHolder (view)
23+ }
24+
25+ override fun getItemCount (): Int = paths.size
26+
27+ override fun onBindViewHolder (holder : ViewHolder , position : Int ) {
28+ val bmp = BitmapFactory .decodeFile(paths[position])
29+ holder.imgSkin.setImageBitmap(Bitmap .createScaledBitmap(bmp, 64 , 64 , true ))
30+ holder.itemView.setOnClickListener { onClick(paths[position]) }
31+ }
32+
33+ fun updateData (newPaths : List <String >) {
34+ paths = newPaths
35+ notifyDataSetChanged()
36+ }
37+ }
0 commit comments