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

我有两个图像视图,但是当我调用一个图像视图来设置图像时,它会将图像设置为相同的图像

我有两个图像视图,但是当我调用一个图像视图来设置图像时,它会将图像设置为相同的图像

白猪掌柜的 2021-05-30 10:45:40
我有两个背靠背的图像视图。当我在第一个图像视图上设置图像时,它也会在下一个图像视图上设置相同的图像,当我从一个图像视图更改图像时,它也会从其他图像更改该图像。我该如何修复它。请帮我。先感谢您。相关代码为:`    ImageView cpic,psymbol;     private static final int PICK_IMAGE=100;     private static final int SET_IMAGE=100;     Uri imageUri,simageUri;     cpic.setOnClickListener(new View.OnClickListener() {        @Override        public void onClick(View v) {            openGallery();        }    });    psymbol.setOnClickListener(new View.OnClickListener() {        @Override        public void onClick(View v) {            openGallary();        }    });}private void openGallery() {    Intent Gallery = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.INTERNAL_CONTENT_URI);    startActivityForResult(Gallery,PICK_IMAGE);}private void openGallary(){    Intent Gallary = new Intent(Intent.ACTION_PICK,MediaStore.Images.Media.INTERNAL_CONTENT_URI);    startActivityForResult(Gallary,SET_IMAGE);}@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {    super.onActivityResult(requestCode, resultCode, data);    if (resultCode==RESULT_OK && requestCode==PICK_IMAGE){        imageUri=data.getData();       InputStream imageinput = null;        try {            imageinput=getContentResolver().openInputStream(imageUri);            cpic.setImageBitmap(BitmapFactory.decodeStream(imageinput));        } catch (FileNotFoundException e) {            e.printStackTrace();        }    }    if (resultCode==RESULT_OK && requestCode==SET_IMAGE){        simageUri=data.getData();        InputStream inputimage = null;        try {            inputimage=getContentResolver().openInputStream(simageUri);            psymbol.setImageBitmap(BitmapFactory.decodeStream(inputimage));        } catch (FileNotFoundException e) {            e.printStackTrace();        }    }}
查看完整描述

2 回答

?
ITMISS

TA贡献1871条经验 获得超8个赞

这是你的问题:


 private static final int PICK_IMAGE=100;

 private static final int SET_IMAGE=100;

更改这些变量之一的值,因为在onActivityResult这两个if语句中都被执行。


查看完整回答
反对 回复 2021-06-02
?
MMMHUHU

TA贡献1834条经验 获得超8个赞

private static final int PICK_IMAGE=100;

private static final int SET_IMAGE=100;

您对它们使用相同的请求代码。所以你必须使用不同的请求代码。


所以,你应该这样做——


private static final int PICK_IMAGE=100;

private static final int SET_IMAGE=101;



@Override

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

    super.onActivityResult(requestCode, resultCode, data);


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

        imageUri=data.getData();


        InputStream imageinput = null;

        try {

            imageinput=getContentResolver().openInputStream(imageUri);

            cpic.setImageBitmap(BitmapFactory.decodeStream(imageinput));

        } 

        catch (FileNotFoundException e) {

            e.printStackTrace();

        }


    }


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

        simageUri=data.getData();


        InputStream inputimage = null;

        try {

            inputimage=getContentResolver().openInputStream(simageUri);

            psymbol.setImageBitmap(BitmapFactory.decodeStream(inputimage));


        } 

        catch (FileNotFoundException e) {

            e.printStackTrace();

        }

    }

}


查看完整回答
反对 回复 2021-06-02
  • 2 回答
  • 0 关注
  • 110 浏览

添加回答

举报

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