проблемы с изображениями в recyclerview с помощью picasso

Я загружаю изображение из интернета, и это путь, который я выбрал, чтобы сохранить его на телефоне:

ContextWrapper cw = new ContextWrapper(mContext);
File directory = cw.getDir("imagesDB", Context.MODE_PRIVATE);
OutputStream output = new FileOutputStream(new File(directory,"profile.jpg"));

После загрузки изображения я использую это, чтобы получить путь:

String databasePath = mContext.getDir("", Context.MODE_PRIVATE).getAbsolutePath();
databasePath = databasePath + "imagesDB/profile.jpg";

И затем в моем адаптере recyclerview я использую это:

Picasso.with(context).load(databasePath).placeholder(R.mipmap.ic_launcher).into(holder.Photo);

I always get the ic_launcher image displayed instead of the one I downloaded.

Я использую неправильный путь для изображения?

Это код, который я использую для загрузки образа:

 URL url = null;
    try {
        url = new URL("http://192.168.0.100/app/image/image1.jpg");
    } catch (MalformedURLException e) {
        e.printStackTrace();
    }
    InputStream input = null;
    try {
        input = url.openStream();
    } catch (IOException e) {
        e.printStackTrace();
    }
    try {
        ContextWrapper cw = new ContextWrapper(mContext);
        File directory = cw.getDir("imagesDB", Context.MODE_PRIVATE);
        OutputStream output = new FileOutputStream(new File(directory,"profile.jpg"));

        try {
            byte[] buffer = new byte[10000];
            int bytesRead = 0;
            while ((bytesRead = input.read(buffer, 0, buffer.length)) >= 0) {
                output.write(buffer, 0, bytesRead);
            }
            String databasePath = mContext.getDir("", Context.MODE_PRIVATE).getAbsolutePath();
            Log.i("","Path1: "+ databasePath.toString());
            databasePath = databasePath + "imagesDB/profile.jpg";
            Log.i("","Path2: "+ databasePath.toString());
        } finally {
            output.close();
        }
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    } finally {
        try {
            input.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

2 ответа

  1. Адаптер Рециркулятора С Использованием Picasso. Остальной код, если кто-то должен попросить его, я загружу.

    public class RecyclerAdapter extends RecyclerView.Adapter<RecyclerAdapter.MyViewHolder> {
            private ArrayList<DogInfo> mArrayListInfo;
            private Context context;
    
                public RecyclerAdapter(ArrayList<DogInfo> mArrayListInfo,Context context) {
                    this.mArrayListInfo = mArrayListInfo;
                    this.context=context;
                }
    
                @Override
                public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
                    View view= LayoutInflater.from(parent.getContext()).inflate(R.layout.lay_display,null);
    
                    return new MyViewHolder(view);
                }
    
                @Override
                public void onBindViewHolder(MyViewHolder holder, int position) {
                    DogInfo dogInfo=mArrayListInfo.get(position);
                    holder.mTextView.setText(dogInfo.getmInfo());
    
                    Picasso.with(context).load(dogInfo.getmImage()).into(holder.mImageView);
    
                }
    
    
    
                @Override
                public int getItemCount() {
                    return mArrayListInfo.size();
                }
    
                public class MyViewHolder extends RecyclerView.ViewHolder {
                    ImageView mImageView;
                    TextView mTextView;
                    public MyViewHolder(View itemView) {
                        super(itemView);
    
    
                        mImageView= (ImageView) itemView.findViewById(R.id.imgShow);
                        mTextView= (TextView) itemView.findViewById(R.id.txtShow);
    
                    }
                }
            }