java - 在Android中分别选取两张图片

标签 java android

我正在制作一个android应用程序,我需要两个上传图像并将它们保存到服务器。 enter image description here

当我从第一个按钮中选择它时,它会出现在第二个按钮中,但我需要两个不同的图像。

photoUpload.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                chooseImage();
            }
        });

        photoUpload2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                chooseImage();
            }
        });
    }

    private void chooseImage() {
        Intent openGalleryIntent = new Intent();
        openGalleryIntent.setType("image/*");
        openGalleryIntent.setAction(Intent.ACTION_GET_CONTENT);
        startActivityForResult(Intent.createChooser(openGalleryIntent, "Select Picture"), GALLERY_REQUEST_CODE);
    }

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

        if (requestCode == GALLERY_REQUEST_CODE && resultCode == RESULT_OK && data != null && data.getData() != null) {
            Uri uri = data.getData();

            try {
                Bitmap bitmap = MediaStore.Images.Media.getBitmap(getContentResolver(), uri);
                imageView.setImageBitmap(bitmap);
                imageView2.setImageBitmap(bitmap);
            } catch (IOException e) {
                e.printStackTrace();
            }

        }

    }

最佳答案

您收到此消息是因为您将选定的图像设置为 imageview 1 和 2。要解决此问题,您可以使用不同的请求代码或使用 boolean 变量来区分图像 1 和 2 的上传

定义两个 boolean 变量来区分图片1和2的上传

Boolean first = false, second = false;


      @Override
            public void onClick(View v) {
                first = true;
                chooseImage();
            }
        });

        photoUpload2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
            second = true;
                chooseImage();
            }
        });
    }

    private void chooseImage() {
        Intent openGalleryIntent = new Intent();
        openGalleryIntent.setType("image/*");
        openGalleryIntent.setAction(Intent.ACTION_GET_CONTENT);
        startActivityForResult(Intent.createChooser(openGalleryIntent, "Select Picture"), GALLERY_REQUEST_CODE);
    }

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

        if (requestCode == GALLERY_REQUEST_CODE && resultCode == RESULT_OK && data != null && data.getData() != null) {
            Uri uri = data.getData();

            try {
                Bitmap bitmap = MediaStore.Images.Media.getBitmap(getContentResolver(), uri);
                if(first)
                {
                    imageView.setImageBitmap(bitmap);
                    first = false;
                }else if(second)
                {
                 imageView2.setImageBitmap(bitmap);
                 second = false;
                 }

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

        }

    }

您可以使用库从图库中选择多张图像。有许多可用的库,其中之一是 https://github.com/ParkSangGwon/TedPicker

希望这对您有帮助! 快乐编码

关于java - 在Android中分别选取两张图片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58729836/

相关文章:

android - 您如何轻松地测试 android 中的保存恢复方法

java - 对于字符类型,方法 isDefined(char) 未定义

Android Activity 和 View

android - 在 Android 上获取 OAuth2 token 时 UNREGISTERED_ON_API_CONSOLE

java - 运行时从哪里获取 Sentry/Raven DSN?

java - setOnGroupExpandListener 未解决,android

java - 在 Android 上使用 Camera API2 进行基于触摸的对焦

java - ScheduledExecutorService 不执行具有 initialDelay 0 的任务

java - 使用 spring data 和 querydsl 查询集合

java - 在 Android 中,我可以在没有 Intent 的情况下在 Activity 之间移动对象吗?