首页 > 解决方案 > 在不降低应用速度或崩溃的情况下将大尺寸照片放入小 ImageView 的问题

问题描述

当我想将我的大尺寸照片从我的存储中放入小的 imageViews 时,我遇到了一个问题。我想知道如何在不降低应用程序速度或崩溃的情况下将这些照片放在一个小的 imageViews 中。我有一个 RecyclerView,它显示了列表中存储的一些图片。这是我的回收器适配器代码。谢谢你的帮助。

class Adapter(files: ArrayList<File>):RecyclerView.Adapter<Adapter.myViewHolder>() {

    val files: ArrayList<File> = files

    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): myViewHolder {
        val view = LayoutInflater.from(parent.context).inflate(R.layout.item_complex_note_view , parent , false)
        return myViewHolder(view)
    }

    override fun getItemCount(): Int {
        return files.size
    }

    override fun onBindViewHolder(holder: myViewHolder, position: Int) {
        holder.bind(files.get(position))
    }


    class myViewHolder(itemView: View):RecyclerView.ViewHolder(itemView){
            lateinit var imageView: ImageView

        init {
            imageView = itemView.findViewById(R.id.complex_note_view_item_imageview)
        }

        fun bind(file: File) {           
            imageView.setImageURI(file.toUri())
        }
    }
}

标签: javaandroidandroid-studiokotlin

解决方案


更好的方法是使用以下代码:

Glide.with(imageView.context)
                        .load(imageFile)
                        .apply(RequestOptions().centerCrop())
                        .into(imageView)

Glide 类更快,更优化。


推荐阅读