首页 > 解决方案 > ImageView 在单击的两个 ImageView 上显示相同的图片

问题描述

我有两个ImageView一个img1,第二个是img2。我想从相机捕获图像以单击两者ImageView并在其上显示。但是这里的问题是我从 click 上单击图像img1并且在两者上都显示相同的图像ImageView。如果我单击img1并从那里单击图像,那么img2也显示相同的图片而不单击那里,如果我单击img2然后单击那里的图像,那么该图片img1也会显示。我想显示两个不同的相机点击的不同图像ImageView

img1.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
            startActivityForResult(intent, requestcode);
        }
    });

    img2.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
            startActivityForResult(intent, requestcode);
        }
    });


@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (this.requestcode  == requestCode && resultCode == RESULT_OK) {
        Bitmap bitmap = (Bitmap) data.getExtras().get("data");
        img.setImageBitmap(bitmap);
        img2.setImageBitmap(bitmap);

    } 
}

标签: androidimageviewandroid-imageview

解决方案


您需要Request codes为两个ImageViewswitch例使用不同的,这样就不会出现问题。目前,您Request对两者都使用相同的代码Image View

喜欢

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data){
    super.onActivityResult(requestCode, resultCode, data);
    Bitmap bitmap = (Bitmap) data.getExtras().get("data");
    switch(requestCode){
        case 0: // Do your stuff here...
            img1.setImageBitmap(bitmap);
        break;
        case 1: // Do your other stuff here...
            img2.setImageBitmap(bitmap);
        break;

    }
}

里面onClickListener

img1.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
            startActivityForResult(intent, 0);
        }
    });

    img2.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
            startActivityForResult(intent, 1);
        }
    });

推荐阅读