首页 > 解决方案 > 如何使用 (Intent.ACTION_PICK) 通过 registerForActivityResult() 方法从图库中获取选定的图像到我的 ImageView?

问题描述

注意: startActivityForResult() 已弃用。所以我正在使用这个 registerForActivityResult() 方法。

我正在为此使用此代码。但我无法从图库中获取选定的图像到我的 ImageView。

我的意图正在运行,我可以从图库中选择图像,但无法将图像获取到 ImageView。

如何通过 registerForActivityResult() 方法从图库中获取选定的图像到我的 ImageView?

我也想使用 (Intent.ACTION_PICK) 和 ActivityResultContracts.StartActivityForResult()。

不是 mGetContent.launch("image/*") 和 ActivityResultContracts.GetContent() 方法选项。

((Button) findViewById(R.id.gallery)).setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {

                Intent imgintent = new Intent();
                imgintent.setAction(Intent.ACTION_PICK);
                imgintent.setType("image/*");
                imgactivity.launch(imgintent);

            }
        });

        ActivityResultLauncher<Intent> picactivity = registerForActivityResult(
                new ActivityResultContracts.StartActivityForResult(),
                new ActivityResultCallback<ActivityResult>() {
                    @Override
                    public void onActivityResult(ActivityResult result) {
                        if (result.getResultCode() == Activity.RESULT_OK) {
                            Intent data = result.getData();
                            pickimage = (ImageView) findViewById(R.id.pickimage);
// maybe useable for uri    pickimage.setImageURI(Uri.parse(data.toUri(0)));
                        }
                    }
                });

标签: javaandroidandroid-studio

解决方案


推荐阅读