java - 在不降低应用速度或崩溃的情况下将大尺寸照片放入小 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())
}
}
}
解决方案
更好的方法是使用以下代码:
Glide.with(imageView.context)
.load(imageFile)
.apply(RequestOptions().centerCrop())
.into(imageView)
Glide 类更快,更优化。
推荐阅读
- angular - 使用单一代码库创建 Angular lite 应用程序和常规应用程序
- php - 最大数量在 Ajax 购物车 WooCommerce 中不起作用
- django-templates - 轮播按钮在 Django 模板中可见
- php - 基于SQL查询在PHP中传递数组
- python - 从列表创建 JSON
- python - 如何通过单击 QDialog 中的自定义标题来移动窗口
- c# - REST API 和导航属性
- swiftui - 由于 SwiftUI 重新渲染父视图,TabView 在旋转到横向时断开连接
- android - 如何在不搜索蓝牙低功耗设备的情况下自动连接
- android - 为具有 API 级别 28 的 android 设备定义活动的背景颜色