猿问

onActivityResult 没有做任何事情

我正在尝试创建一个图像选择器,用户将在其中选择一个图像,并将一个图像ImageView附加到一个linear layout图像作为其图像资源。这是我的代码,我不知道出了什么问题,但没有ImageView附加到 LinearLayout


private void pickImage() {

    Intent intent = new Intent(Intent.ACTION_PICK);

    intent.setType("image/*");

    startActivityForResult(intent, 1);

}


@Override

protected 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()从按钮调用。


斯蒂芬大帝
浏览 79回答 1
1回答

心有法竹

你不能去 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();            }        }}现在您可以将图像附加到线性布局。
随时随地看视频慕课网APP

相关分类

Java
我要回答