嘿,我是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
非常感谢你们!
创建新的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();
}
}