Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在不降低应用程序速度或崩溃的情况下将大尺寸照片放入小图像视图的问题_Java_Android_Android Studio_Kotlin - Fatal编程技术网

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

Java 在不降低应用程序速度或崩溃的情况下将大尺寸照片放入小图像视图的问题,java,android,android-studio,kotlin,Java,Android,Android Studio,Kotlin,当我想把我的大尺寸照片从我的存储器放到小的图像视图中时,我遇到了一个问题。我想知道如何在不降低应用程序速度或崩溃的情况下将这些照片放在一个小的ImageView中。 我有一个RecyclerView,它在一个列表中显示了一些来自存储的图片。这是我的回收器适配器代码。 谢谢你的帮助 class Adapter(files: ArrayList<File>):RecyclerView.Adapter<Adapter.myViewHolder>() { val fil

当我想把我的大尺寸照片从我的存储器放到小的图像视图中时,我遇到了一个问题。我想知道如何在不降低应用程序速度或崩溃的情况下将这些照片放在一个小的ImageView中。 我有一个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())
        }
    }
}
类适配器(文件:ArrayList):RecyclerView.Adapter(){ val files:ArrayList=files 重写CreateViewHolder(父级:ViewGroup,viewType:Int):myViewHolder{ val view=LayoutInflater.from(parent.context).充气(R.layout.item\u complex\u note\u视图,parent,false) 返回myViewHolder(视图) } 重写getItemCount():Int{ 返回文件.size } 覆盖onBindViewHolder(holder:myViewHolder,位置:Int){ holder.bind(files.get(position)) } 类myViewHolder(itemView:View):RecyclerView.ViewHolder(itemView){ lateinit var imageView:imageView 初始化{ imageView=itemView.findViewById(R.id.complex\u note\u view\u item\u imageView) } 趣味绑定(文件:文件){ imageView.setImageURI(文件.toUri()) } } }
我建议您使用带有resize methode的,这样可以避免速度不足和崩溃

Picasso.get().load(new File(...)).resize(50, 50).centerCrop().into(imageView);

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

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

Glide类速度更快,优化程度更高。

它可以工作。非常感谢。