Mp4Adapter.kt 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. import android.content.Context
  2. import android.net.Uri
  3. import android.view.LayoutInflater
  4. import android.view.View
  5. import android.view.ViewGroup
  6. import android.widget.ImageView
  7. import android.widget.TextView
  8. import androidx.recyclerview.widget.RecyclerView
  9. import com.easygbs.easygbd.R
  10. import java.io.File
  11. class Mp4Adapter(
  12. private val context: Context,
  13. private val mp4Files: List<File>,
  14. private val onItemClick: (File) -> Unit
  15. ) : RecyclerView.Adapter<Mp4Adapter.Mp4ViewHolder>() {
  16. class Mp4ViewHolder(view: View) : RecyclerView.ViewHolder(view) {
  17. val thumbnail: ImageView = view.findViewById(R.id.thumbnail)
  18. // val fileName: TextView = view.findViewById(R.id.fileName)
  19. }
  20. override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): Mp4ViewHolder {
  21. val view = LayoutInflater.from(context).inflate(R.layout.item_mp4, parent, false)
  22. return Mp4ViewHolder(view)
  23. }
  24. override fun onBindViewHolder(holder: Mp4ViewHolder, position: Int) {
  25. val file = mp4Files[position]
  26. // holder.fileName.text = file.name
  27. // 使用 ThumbnailUtils 生成缩略图
  28. val thumbnailBitmap = android.media.ThumbnailUtils.createVideoThumbnail(
  29. file.absolutePath,
  30. android.provider.MediaStore.Video.Thumbnails.MINI_KIND
  31. )
  32. holder.thumbnail.setImageBitmap(thumbnailBitmap)
  33. holder.itemView.setOnClickListener {
  34. onItemClick(file) // 点击事件回调
  35. }
  36. }
  37. override fun getItemCount(): Int = mp4Files.size
  38. }