在RecyclerView中显示来自Uri的图像

问题描述

我正在尝试显示uri中的图像。我选择特定图像,然后将图像的Uri存储在Realm数据库中。那很好。但是我无法在数据适配器中显示图像。下面是我的选择图像功能和onBindViewHolder。要在RecyclerView中显示图像,我正在使用毕加索,而Uri以String的形式存储在Realm数据库中。

 private void ChooseImage(){

    try {
        setimage = findViewById(R.id.imageGoal);
        FloatingActionButton chooseImage = findViewById(R.id.floatingActionButtonAddImage);
        chooseImage.setonClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                Intent intent = new Intent(Intent.ACTION_PICK);
                intent.setType("image/*");
                startActivityForResult(intent,SELECTED_PHOTO);


            }
        });

    }catch (Exception ex){

        Toast.makeText(this,"Something was wrong"+ex.getMessage(),Toast.LENGTH_SHORT).show();
    }
}


@Override
protected void onActivityResult(int requestCode,int resultCode,@Nullable Intent data) {
    super.onActivityResult(requestCode,resultCode,data);

    if(requestCode==SELECTED_PHOTO&& resultCode==RESULT_OK && data !=null && data.getData()!= null){

        uri= data.getData();

        try{

            Bitmap bitmap = MediaStore.Images.Media.getBitmap(MainActivity.this.getContentResolver(),uri);

            setimage.setimageBitmap(bitmap);

            if(setimage.getDrawable()!=null){

                setimage.setVisibility(View.VISIBLE);
            }


        } catch (IOException e) {
            e.printstacktrace();
        }


    }
}

    @Override
public void onBindViewHolder(GoalViewHolder holder,int position) {

    NewGoalModel goal = goalList.get(position);
    Uri uri= Uri.parse(goal.getimageUri());
    File file= new File(Objects.requireNonNull(uri.getPath()));
    
    Picasso.get().load(file).into(holder.imageGoal);
    
}

这是保存的Uri值的示例:content://com.google.android.apps.photos.contentprovider/-1/1/content%3A%2F%2Fmedia%2Fexternal%2Fimages%2Fmedia%2F24/ORIGINAL/NONE/992367815

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)