如何在CropActivity上将来自不同图像的图像不同图像URI获取到ImageView?

问题描述 投票:0回答:1

嘿,我是Android编程的新手,我遇到一个问题,我有三个ImageView,每次单击这些ImageView时,我都希望它在CropActivity上启动。此后,如果作物活动完成,它将把其图像Uri检索到我单击的图像视图。但是问题是,每当我单击ImageView 2时,先获取图像,然后对其进行裁剪,该图像将立即设置为三个ImageViews。而不是在Image View 2上。我尝试在线搜索,但似乎找不到答案。

这是我的onCreate

public class EditProfileActivity extends AppCompatActivity {

private CardView profileImageEdit, profileImageEdit2, profileImageEdit3;
ImageView ivBack, ImageUploaded1, ImageUploaded2, ImageUploaded3;
Uri imageUri1, imageUri2, imageUri3;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_edit_profile);
    profileImageEdit = findViewById(R.id.profileImageEdit);
    profileImageEdit2 = findViewById(R.id.profileImageEdit2);
    profileImageEdit3 = findViewById(R.id.profileImageEdit3);
    ImageUploaded1 = findViewById(R.id.ImageUploaded1);
    ImageUploaded2 = findViewById(R.id.ImageUploaded2);
    ImageUploaded3 = findViewById(R.id.ImageUploaded3);

        profileImageEdit.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            CropImage.activity()
                    .setAspectRatio(1, 1)
                    .start(EditProfileActivity.this);


        }
    });



    profileImageEdit2.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            CropImage.activity()
                    .setAspectRatio(1, 1)
                    .start(EditProfileActivity.this);


        }
    });

    profileImageEdit3.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            CropImage.activity()
                    .setAspectRatio(1, 1)
                    .start(EditProfileActivity.this);


        }
    });



    ivBack.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            startActivity(new Intent(EditProfileActivity.this, ProfileActivity.class));
        }
    });

以上行下面是我的cropActvity onActivity结果

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


    if (requestCode == CropImage.CROP_IMAGE_ACTIVITY_REQUEST_CODE && resultCode == RESULT_OK) {

        CropImage.ActivityResult result = CropImage.getActivityResult(data);
        imageUri1 = result.getUri();
        imageUri2 = result.getUri();
        imageUri3 = result.getUri();//this is the problem

        ImageUploaded1.setImageURI(imageUri1);
        ImageUploaded2.setImageURI(imageUri2);
        ImageUploaded3.setImageURI(imageUri3);


    } else {
        startActivity(new Intent(EditProfileActivity.this, ProfileActivity.class));
        finish();
    }
}

这里是图像:EditProfile

非常感谢你们!

android uri android-imageview
1个回答
0
投票

创建新的imageView实例:

ImageView pickedImageView;

在每个profileImageEdit设置为单击ImageView之后:

ImageView pickedImageView;
profileImageEdit.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                CropImage.activity()
                        .setAspectRatio(1, 1)
                        .start(EditProfileActivity.this);
                pickedImageView = profileImageEdit;
            }
        });

        profileImageEdit2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                CropImage.activity()
                        .setAspectRatio(1, 1)
                        .start(EditProfileActivity.this);
                pickedImageView = profileImageEdit2;
            }
        });

        profileImageEdit3.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                CropImage.activity()
                        .setAspectRatio(1, 1)
                        .start(EditProfileActivity.this);
                pickedImageView = profileImageEdit3;
            }
        });

使用以下命令修改onActivityResult:

        @Override
        protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
            super.onActivityResult(requestCode, resultCode, data);
            if (requestCode == CropImage.CROP_IMAGE_ACTIVITY_REQUEST_CODE && resultCode == RESULT_OK) {
                CropImage.ActivityResult result = CropImage.getActivityResult(data);
                if (pickedImageView != null)
                    pickedImageView.setImageURI(result.getUri());
            } else {
                startActivity(new Intent(EditProfileActivity.this, ProfileActivity.class));
                finish();
            }
        }
© www.soinside.com 2019 - 2024. All rights reserved.