Просмотр изображения: второе изображение заменяется первым снятым изображением

Привет, я поражен этой кодировкой. Во-первых, у меня есть два вида изображений, когда мы нажимаем на один из них. Откроется диалоговое окно выбора, в котором есть две опции: 1. сделать фотографию 2. выбрать из галереи, когда я выбираю из камбуза, все работает хорошо, где проблема,

Когда мы выбираем параметр "Сделать фото" и после того, как мы сделали снимок при настройке его предварительного просмотра для первого изображения, все работает нормально, так как проблема здесь во втором изображении. Когда мы выбираем параметр "Сфотографировать" и после захвата фотографии он заменяет изображение первого изображения вторым изображением.

Это код Java:

public class PrescriptionUpload extends ActionBarActivity {
    ImageView uploadimage1, uploadimage2;
    Bitmap imagemap, imagemapsec;
    int imageupload = 1;
    int imagesecpload = 2;
    int requestcamera = 0;
    Button uploadpric;
    StringBuilder sb;
    String uploadimg2;
    Toolbar include2;
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.prescriptionimages);
        include2= (Toolbar) findViewById(R.id.include2);
        setSupportActionBar(include2);
        assert getSupportActionBar() != null;
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
        getSupportActionBar().setDisplayShowHomeEnabled(true);
        uploadimage1 = (ImageView) findViewById(R.id.uploadimage1);
        uploadimage1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                selectimage(imageupload);
            }
        });
        uploadimage2 = (ImageView) findViewById(R.id.uploadimage2);
        uploadimage2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                selectimage(imagesecpload);
            }
        });
    }



    private void selectimage(final int number) {
        final CharSequence[] items = {"Take Photo", "Choose from Gallery"};
        AlertDialog.Builder builder = new AlertDialog.Builder(PrescriptionUpload.this);
        builder.setTitle("Add Prescription");
        builder.setItems(items, new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int item) {
                if (items[item].equals("Take Photo")) {
                    Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
                    startActivityForResult(intent, requestcamera);
                } else if (items[item].equals("Choose from Gallery")) {
                    Intent intent = new Intent(
                            Intent.ACTION_PICK,
                            android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
                    intent.setType("image/*");
                    startActivityForResult(
                            Intent.createChooser(intent, "Select File"),
                            number);
                }
            }
        });
        builder.show();
    }


    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (resultCode == RESULT_OK) {
            Uri selectedImageUri = data.getData();
            if (requestCode == imageupload) {
                try {
                    imagemap = MediaStore.Images.Media.getBitmap(getContentResolver(), selectedImageUri);
                    uploadimage1.setImageBitmap(imagemap);
                    uploadimage2.setVisibility(View.VISIBLE);
                } catch (IOException e) {
                    e.printStackTrace();
                }

            } else if (requestCode == imagesecpload) {
                try {
                    imagemapsec = MediaStore.Images.Media.getBitmap(getContentResolver(), selectedImageUri);
                    uploadimage2.setImageBitmap(imagemapsec);
                } catch (IOException e) {
                    e.printStackTrace();
                }

            } else if (requestCode == requestcamera) {


               if (uploadimage1.getId()==R.id.uploadimage1){

                    Bitmap testurl = (Bitmap) data.getExtras().get("data");
                    uploadimage1.setImageBitmap(testurl);
                    uploadimage2.setVisibility(View.VISIBLE);
                }else if (uploadimage2.getId()==R.id.uploadimage2){
                    Bitmap testurltwo = (Bitmap) data.getExtras().get("data");
                    uploadimage2.setImageBitmap(testurltwo);

              }


            }
        }

    }

1 ответ

Я решил свою проблему, используя onActivityResult и с приращением переменной

Другие вопросы по тегам