当前位置: 首页 > 知识库问答 >
问题:

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

戴嘉珍
2023-03-14

我正在尝试制作一款包含来自存储或网络的无限图像的应用程序。但问题是,recyclerview的滚动速度非常慢

我如何在我的应用程序中创建图像列表,如gallery、whats应用程序、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);
          }
      }
      
  }

共有1个答案

索嘉石
2023-03-14

你需要用适当的描述清楚地解释这个问题。

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

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

看看官方的分页文档或这个GitHub库。

 类似资料:
  • 在我的应用程序中,我创建了一个活动,它显示简单的hello world消息。在“AndroidManifest.xml”文件中,我将标签属性设置为“welcome”:

  • 我在我的LibGDX项目中遇到了这个问题,我基本上无法加载我的游戏屏幕,我正在关注一个YouTube教程(链接到我所在的特定教程:https://www.youtube.com/watch?v=LSblkR4K1LU),我发现我的精灵应该出现在我的屏幕上,只是它根本不会加载,它只是打开,关闭然后弹出这个:http://puu.sh/coxUv/d877d08a83.png,我承认我从视频中唯一改变

  • 我正在尝试构建一个JavaFX应用程序,其中我有一个名为“Start”的按钮和一个ImageView。使用JavaFX-12的机器人类,我正在尝试在单击按钮时截取笔记本电脑屏幕的屏幕截图,并在ImageView中的运行时逐一显示图像。我的问题是JavaFX窗口没有响应,程序崩溃(可能)。甚至让线程进入睡眠状态似乎也不起作用。我假设它不起作用,因为我没有设置任何fps规则,但我怎么能这样做呢?目前,

  • 我正在尝试以编程方式添加ImageView,但不要在不同的屏幕上制作相同的大小。我尝试了许多比例代码,但没有任何好的结果。 屏幕:屏幕图像 这是我的代码:

  • 问题内容: 使用Angularjs,我需要显示一个加载屏幕(一个简单的微调器),直到ajax请求完成为止。请提出带有代码段的任何想法。 问题答案: 与其设置范围变量以指示数据加载状态,不如让指令为您完成所有操作: 使用此伪指令,您需要做的就是为任何加载动画元素提供“加载”属性: 您可以在页面上有多个加载微调器。这些微调框的位置和布局由您决定,指令会自动为您自动打开/关闭。

  • 问题内容: 我正在使用PIL库进行一些图像编辑。关键是,我不想每次都将图像保存在HDD上以在资源管理器中查看它。是否有一个小模块可以使我设置窗口并显示图像? 问题答案: 从PIL教程中: 一旦有了 Image 类的实例,就可以使用该类定义的方法来处理和操纵图像。例如,让我们显示刚刚加载的图像: 更新: 如今,该方法已正式记录在PIL的Pillow分支中,并说明了如何在不同的OS上实现该方法。