为了账号安全,请及时绑定邮箱和手机立即绑定

onActivityResult 没有做任何事情

onActivityResult 没有做任何事情

斯蒂芬大帝 2022-06-30 11:36:55
我正在尝试创建一个图像选择器,用户将在其中选择一个图像,并将一个图像ImageView附加到一个linear layout图像作为其图像资源。这是我的代码,我不知道出了什么问题,但没有ImageView附加到 LinearLayoutprivate void pickImage() {    Intent intent = new Intent(Intent.ACTION_PICK);    intent.setType("image/*");    startActivityForResult(intent, 1);}@Overrideprotected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {    if (resultCode != RESULT_OK) {        return;    } else if(resultCode == 1) {        final Bundle extras = data.getExtras();        if (extras != null) {            //IMAGE SELECTED            Bitmap imageSelected = extras.getParcelable("data");            final View listingImage = getLayoutInflater().inflate(R.layout.image_listing, null);            Button remove = (Button)listingImage.findViewById(R.id.removeImage);            ImageView imageView = (ImageView)listingImage.findViewById(R.id.imageView);            //SET IMAGE OF IMAGEVIEW TO SELECTED IMAGE            imageView.setImageBitmap(imageSelected);            remove.setOnClickListener(new View.OnClickListener() {                @Override                public void onClick(View v) {                    linearLayout.removeView(listingImage);                }            });            //ADD IMAGEVIEW TO LINEARLAYOUT            linearLayout.addView(listingImage, 0);        }    }}pickImage()从按钮调用。
查看完整描述

1 回答

?
心有法竹

TA贡献1866条经验 获得超5个赞

你不能去 onActivityResult 因为你写错了条件。它将是请求代码,而不是结果代码,因此您无法保存所选图像。


@Override

    protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {


        if (requestCode == 1 && resultCode == RESULT_OK){


            Uri contentURI = data.getData();

            try {

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

                String path = saveImage(bitmap);

                Toast.makeText(MainActivity.this, "Image Saved!", Toast.LENGTH_SHORT).show();

                listing_image.setImageBitmap(bitmap);

                ByteArrayOutputStream baos=new ByteArrayOutputStream();

                bitmap.compress(Bitmap.CompressFormat.PNG,100, baos);

                byte [] b=baos.toByteArray();

                String temp= Base64.encodeToString(b, Base64.DEFAULT);


            } catch (IOException e) {

                e.printStackTrace();

                Toast.makeText(MainActivity.this, "Failed!", Toast.LENGTH_SHORT).show();

            }

        }

}

现在您可以将图像附加到线性布局。


查看完整回答
反对 回复 2022-06-30
  • 1 回答
  • 0 关注
  • 78 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信