java - 在不降低应用程序速度或崩溃的情况下将大尺寸照片放入小 ImageView 的问题

标签 java android android-studio kotlin

当我想将存储中的大尺寸照片放入小 ImageView 时遇到了问题。我想知道如何在不降低应用程序速度或崩溃的情况下将这些类型的照片放入一个小的 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())
        }
    }
}

最佳答案

更好的方法是使用这段代码:

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

Glide 类更快、更优化。

关于java - 在不降低应用程序速度或崩溃的情况下将大尺寸照片放入小 ImageView 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57911585/

相关文章:

android - 造型 OssLicensesMenuActivity

java - 如何在Java中使用FileDialog绘制图像

android - 在 gradle sync android studio 上跳过 prebuilt-library.mk

java - 无法在 Tomcat 上部署 war

java - Android 显示图像 - Surface 无效

java - 在 Android/Java 中更改 XML 值

android: ListView 中的动态复选框

android - Ubuntu 上 Android Studio 的键盘问题

java - 如何在数据库中搜索列以匹配用户输入

java - PhoneGap 无法运行 javac 但它肯定在 PATH 上