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

Picasso仅在recyclerView中的最后一个项目中加载图像缩略图

隆兴修
2023-03-14

Picasso只在我的RecolyerView中的最后一个项目上加载缩略图。我使用了firebase RecolyerAdapter;这就是它看起来的样子

如我的代码所示,我将用户名文本设置为图像url以检查真正发生了什么,令我惊讶的是,图像url被正确地检索到了每个ItemView。

这是日志

@覆盖公共视图onCreateView(LayoutInflater inflater,ViewGroup container,Bundle savedInstanceState){

    View view= inflater.inflate(R.layout.fragment_friends, container, false);
   mAuth=FirebaseAuth.getInstance();
   mdatabase=FirebaseDatabase.getInstance().getReference().child("Users");
   mdatabase.keepSynced(true);

   CurrentUser_id=mAuth.getCurrentUser().getUid();
    friendsDatabase=FirebaseDatabase.getInstance().getReference().child("Friends").child(CurrentUser_id);
    friendsDatabase.keepSynced(true);



    recyclerView=view.findViewById(R.id.recyclerviewFriends);
    LinearLayoutManager linearLayoutManager=new LinearLayoutManager(getContext());
    recyclerView.setLayoutManager(linearLayoutManager);
    recyclerView.setHasFixedSize(true);




    options= new FirebaseRecyclerOptions.Builder<Model_Users>().setQuery(friendsDatabase,Model_Users.class).build();
    adapter=new FirebaseRecyclerAdapter<Model_Users, Users_ViewHolder>(options) {
        @Override
        protected void onBindViewHolder(@NonNull final Users_ViewHolder users_viewHolder, int i, @NonNull Model_Users users) {

            final String userid=getRef(i).getKey();


            mdatabase.child(userid).addValueEventListener(new ValueEventListener() {
                @Override
                public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                    String username=dataSnapshot.child("username").getValue().toString();
                    String status=dataSnapshot.child("status").getValue().toString();
                    String image=dataSnapshot.child("profileImage").getValue().toString();


                    users_viewHolder.setUsername(image);
                    users_viewHolder.setStatus(status);
                    users_viewHolder.setimage(image);

//

                    users_viewHolder.mView.setOnClickListener(new View.OnClickListener() {
                        @Override
                        public void onClick(View v) {
                            Intent intent=new Intent(getContext(),ProfileActivity.class);
                            intent.putExtra("Data",userid);
                            startActivity(intent);
                        }
                    });



                }

                @Override
                public void onCancelled(@NonNull DatabaseError databaseError) {

                }
            });



        }

        @NonNull
        @Override
        public Users_ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
            View view =LayoutInflater.from(parent.getContext()).inflate(R.layout.friendslist,parent,false);
            return new Users_ViewHolder(view);
        }
    };

共有1个答案

金子轩
2023-03-14

要使用毕加索显示图像,请使用以下代码:

//here image will be the link of your image
Picasso.get().load(image).into(users_viewHolder.imageView);

将此添加到Build.Gradle:

implementation 'com.squareup.picasso:picasso:2.71828'
 类似资料:
  • 我正在尝试制作一款包含来自存储或网络的无限图像的应用程序。但问题是,recyclerview的滚动速度非常慢 我如何在我的应用程序中创建图像列表,如gallery、whats应用程序、instagram等 我想让我的应用程序运行得非常平稳 请帮帮我! 适配器代码 :

  • 我希望方法使用picasso从服务器加载图像,并且我希望显示一个进度条,直到照片完全下载完毕。下面是我的代码:

  • 问题内容: 这可能是一个愚蠢的问题,但是… 我有几千张图像要加载到Python中,然后转换为numpy数组。显然,这进行得有点慢。但是,我实际上只对每个图像的一小部分感兴趣。(同一部分,图像中心仅100x100像素。) 有什么方法可以只加载图像的一部分以使处理速度更快吗? 这是一些示例代码,在这些代码中,我生成了一些示例图像,将其保存,然后将它们加载回。 问题答案: 将文件另存为未压缩的24位BM

  • 在我的Android游戏中,我使用的是固定分辨率的图像,比如说256x256。现在对于不同的设备屏幕,我通过计算它们的宽度和高度来渲染它们。 假设在galaxy note2上,我计算了宽度=128,高度=128。。。同样,对于不同的设备,宽度和高度也会有所不同。 这就是我如何创建纹理... 在render()中。。 所以,每次当我调用Drew()方法时,libgdx/opengl都会将图像从256

  • 最后是我的适配器类

  • 问题内容: 我无法使用Android 9.0 Pie中的Picasso库加载图像。实际上,它适用于以下版本。它没有显示任何错误消息。有人使用共享了他在Github上的日志 他有消息日志: 问题答案: 尝试在清单文件的应用程序标记中使用!由于我在使用Android Volley时遇到同样的问题! 根据Android文档 指示应用程序是否打算使用明文网络流量,例如明文HTTP。适用于应用的默认值,该值