图像不会使用毕加索从 firebase 数据库加载到 recyclerview

Image doesn't loads on recyclerview from firebase database using picasso

我一直在尝试创建一个壁纸应用程序,我有这个 activity 具有回收站视图。我想从我的 firebase firestore 加载图像 database.I 已经设法做到了。我得到了正确的图像 url,因为我使用 LOG.I 检查它试图将图像 link 转换为使用 PICASSO 的图像。但不幸的是,图像无法加载回收者观点。请帮忙 这是我的适配器和支架 class

package com.example.rimapps.charpapers;

import android.content.Context;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.Toast;

import com.squareup.okhttp.OkHttpClient;
import com.squareup.okhttp.Protocol;
import com.squareup.picasso.OkHttpDownloader;
import com.squareup.picasso.Picasso;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

/**
 * Created by Rimshad on 28/11/2017.
 */

public class ImageAdapter extends RecyclerView.Adapter<ImageAdapter.ViewHolder>{

    List<String> Mylist2= new ArrayList<>();
    Context context;

    public ImageAdapter(List<String>Mylist2,Context context) {
        this.Mylist2 = Mylist2;
        this.context = context;
    }

    @Override
    public ImageAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View itemView = LayoutInflater.from(parent.getContext())
                .inflate(R.layout.items2, parent, false);
        return new ViewHolder(itemView);
    }

    @Override
    public void onBindViewHolder(ImageAdapter.ViewHolder holder, final int position) {
        OkHttpClient client = new OkHttpClient();
        client.setProtocols(Arrays.asList(Protocol.HTTP_1_1));
        Picasso picasso = new Picasso.Builder(context)
                .downloader(new OkHttpDownloader(client))
                .build();

       picasso.with(context)
                .load(Mylist2.get(position))
                .placeholder(R.drawable.superman)
                .error(R.drawable.error)
                .into(holder.image2);

        holder.image2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Toast.makeText(context,Mylist2.get(position),Toast.LENGTH_SHORT).show();
            }
        });
    }
    @Override
    public int getItemCount() {
        return Mylist2.size();
    }

    public class ViewHolder extends RecyclerView.ViewHolder {


                public ImageView image2;

                ViewHolder(View view) {

                    super(view);

                    image2 = (ImageView) view.findViewById(R.id.wallid);
                }
            }
        }

这是我的 MainActivity class

package com.example.rimapps.charpapers;

import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.GridLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.util.Log;

import com.google.android.gms.tasks.OnCompleteListener;
import com.google.android.gms.tasks.Task;
import com.google.firebase.firestore.DocumentReference;
import com.google.firebase.firestore.DocumentSnapshot;
import com.google.firebase.firestore.FirebaseFirestore;

import java.util.ArrayList;

public class Main2Activity extends AppCompatActivity {

    private static final String TAG ="tAAAAAAAAAAg" ;
    private ArrayList<String> imagelist;
    RecyclerView recyclerView2;
    FirebaseFirestore db;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main2);
        db = FirebaseFirestore.getInstance();

        recyclerView2 = (RecyclerView) findViewById(R.id.recview2);
        recyclerView2.setLayoutManager(new GridLayoutManager(Main2Activity.this,2));
        imagelist= new ArrayList<>();
        DocumentReference docRef = db.collection("Wallpapers").document("Aquaman");
        docRef.get().addOnCompleteListener(new OnCompleteListener<DocumentSnapshot>() {
            @Override
            public void onComplete(@NonNull Task<DocumentSnapshot> task) {
                if (task.isSuccessful()) {
                    DocumentSnapshot document = task.getResult();
                    if (document != null) {
                        Log.d(TAG, "DocumentSnapshot data: " + task.getResult().getData());
                         for(int i=1;i<document.getData().size();i++){
                            document.get(i+"");
                             imagelist.add(document.get(i+"").toString());
                             Log.e(TAG,document.get(i+"").toString());
                        }
                            ImageAdapter imageAdapter = new ImageAdapter(imagelist,Main2Activity.this);
                            recyclerView2.setAdapter(imageAdapter);
                    } else {
                        Log.d(TAG, "No such document");
                    }
                } else {
                    Log.d(TAG, "get failed with ", task.getException());
                }
            }
        });
    }
            }

我想将数据库中的图像加载到我的回收站视图

当前得到的结果是 picasso.error(R.drawable.error)。请帮忙。这是 https:

的问题吗

这个答案是因为,我无法在评论中明确说明:

无需制作此语句代码:

Picasso picasso = new Picasso.Builder(context)
        .downloader(new OkHttpDownloader(client))
        .build();

您可以直接调用:

Picasso.with(context)
        .load(Mylist2.get(position))
        .placeholder(R.drawable.superman)
        .error(R.drawable.error)
        .into(holder.image2);