我正在通过getIntent()从其他活动中获取图像Uri,我想在当前活动中裁剪该图像。因此,我实现了Yalantis的uCrop库。但是,我不确定我的代码的哪一部分是错误的,因为我有一个问题,即不确定构建器模式的放置位置。我要做的就是选择图像后,我可以直接裁剪该图像。但是我应该把构建器模式放在哪里?谢谢,请指出除了会导致失败的错误以外的其他错误。
我试图将构建器模式放在onActivityresult中,但是它不起作用。我也将构建器模式放在onCreate方法中,但是它也不起作用。
public class ImageCropActivity extends AppCompatActivity {
private ImageView imageView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_image_crop);
ImageView imageView = findViewById(R.id.cropImageView);
Intent intent = getIntent();
Uri sourceUri = intent.getParcelableExtra("ImageUri");
String path = .sourceUri.getPath();
File file = null;
try {
assert path != null;
file = new File(new URI(path));
} catch (URISyntaxException e) {
e.printStackTrace();
}
UCrop.of(uriFromAfterRegistration, Uri.fromFile(file))
.withAspectRatio(1,1)
.withMaxResultSize(40,40)
.start(this);
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == RESULT_OK && requestCode == UCrop.REQUEST_CROP) {
final Uri resultUri = UCrop.getOutput(data);
imageView.setImageURI(resultUri);
} else if (resultCode == UCrop.RESULT_ERROR) {
final Throwable cropError = UCrop.getError(data);
}
}
我想知道我的sourceUri和目标Uri是正确的还是导致该cropImage活动失败的任何东西。