如何仅在屏幕上在RecyclerView中加载图像时才在imageview中加载图像

问题描述

我正在尝试制作一个包含来自存储或网络的无限图像的应用。但是问题是recyclerview卡住或滚动非常缓慢。

我如何在我的应用(如图库)中列出图像列表,Whats App,Instagram等?
我想非常流畅地运行我的应用程序

请帮助我!

适配器代码

public class Recyclerview1Adapter extends RecyclerView.Adapter<Recyclerview1Adapter.ViewHolder> {
      ArrayList<HashMap<String,Object>> _data;
      public Recyclerview1Adapter(ArrayList<HashMap<String,Object>> _arr) {
          _data = _arr;
      }
      
      @Override
      public ViewHolder onCreateViewHolder(ViewGroup parent,int viewType) {
          LayoutInflater _inflater = (LayoutInflater)getBaseContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
          View _v = _inflater.inflate(R.layout.custom,null);
          return new ViewHolder(_v);
      }
      
      @Override
      public void onBindViewHolder(ViewHolder _holder,final int _position) {
          View _view = _holder.itemView;
          
          final LinearLayout linear1 = (LinearLayout) _view.findViewById(R.id.linear1);
          final ImageView imageview1 = (ImageView) _view.findViewById(R.id.imageview1);
          final TextView textview1 = (TextView) _view.findViewById(R.id.textview1);
          
          textview1.setText(_data.get((int)_position).get("image-name").toString());
          imageview1.setimageBitmap(FileUtil.decodeSampleBitmapFromPath(_data.get((int)_position).get("image-path").toString(),1024,1024));
      }
      
      @Override
      public int getItemCount() {
          return _data.size();
      }
      
      public class ViewHolder extends RecyclerView.ViewHolder{
          public ViewHolder(View v){
              super(v);
          }
      }
      
  }

解决方法

您需要使用适当的说明清楚地说明问题。

据我了解,您正在一次获取所有图像,并将它们传递给recyclerview适配器。如果图像很多,可能会导致滚动问题。

您需要在运行时使用分页加载有限的图像。仅当用户到达recyclerview结束时才加载新图像。

请查看官方分页documentation或此GitHub library