I'm working on a project that uses a series of image urls and loads them into a recyclerview grid. The images can be any resolution and the app crashes after loading just 6 images. I thought using Picasso would solve the problem but that didn't work. The app is now slower and recyclerview scroll is laggy while it loads only 3-4 images at max before crashing.
Memory Leaks:
    public class RecyclerViewAdapter extends RecyclerView.Adapter<RecyclerViewAdapter.ViewHolder>{
    LayoutInflater inflater;
    public RecyclerViewAdapter(Context c){
        inflater=LayoutInflater.from(c);
    }
    @NonNull
    @Override
    public RecyclerViewAdapter.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        View itemView = inflater.inflate(R.layout.recyclerview_item,parent,false);
        itemView.setMinimumHeight(150);
        return new ViewHolder(itemView);
    }
    @Override
    public void onBindViewHolder(@NonNull RecyclerViewAdapter.ViewHolder holder, int position) {
        if(urls!=null){
        //Uri uri = Uri.parse(urls.get(position));
        //Toast.makeText(getContext(),""+urls.get(position),Toast.LENGTH_SHORT).show();
        Picasso.with(context)
                .load(urls.get(position))
                .into(holder.view);
        }
    }
    @Override
    public int getItemCount() {
        if(urls != null)
            return urls.size();
        else
            return 0;
    }
    public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener{
        ImageView view;
        public ViewHolder(View itemView) {
            super(itemView);
            view=itemView.findViewById(R.id.image_recycler);
        }
        @Override
        public void onClick(View v) {
        }
    }
}
 
     
    