如何在 Android 中裁剪图像
How to crop an image in Android
我想从图库中选择一张图片并进行裁剪。我可以选择图片,但还不能裁剪。
这是我的代码:
public static final int PICK_IMAGE = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_upload);
Intent intent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(intent, PICK_IMAGE);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
if(requestCode == PICK_IMAGE && data != null){
Intent cropIntent = new Intent("com.android.camera.action.CROP");
cropIntent.setData(data.getData());
cropIntent.putExtra("crop", "true");
cropIntent.putExtra("aspectX", 1);
cropIntent.putExtra("aspectY", 1);
cropIntent.putExtra("outputX", 450);
cropIntent.putExtra("outputY", 350);
cropIntent.putExtra("return-data", true);
startActivityForResult(cropIntent, 1);
}else if(requestCode == 1){
Log.d("resultCode", String.valueOf(resultCode));
Bundle extras = data.getExtras();
Bitmap bitmap = extras.getParcelable("data");
ImageView test = findViewById(R.id.test);
test.setImageBitmap(bitmap);
test.setScaleType(ImageView.ScaleType.FIT_XY);
}
super.onActivityResult(requestCode, resultCode, data);
}
当我启动应用程序时,我可以 select 一张照片。之后我的应用程序关闭,因为此行中的 data:Bundle extras = data.getExtras();
returns null。在此之前,resultCode 为 0,这意味着它已取消。我该如何解决?
您可以使用 onActivityResult()
裁剪图像。
此 video 展示了如何使用 setOnClickListener()
.
正确设置它
别忘了在 build.gradle
中设置 implementation
:
implementation 'com.theartofdev.edmodo:android-image-cropper:2.4.+'
祝你好运! :)
我想从图库中选择一张图片并进行裁剪。我可以选择图片,但还不能裁剪。 这是我的代码:
public static final int PICK_IMAGE = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_upload);
Intent intent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(intent, PICK_IMAGE);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
if(requestCode == PICK_IMAGE && data != null){
Intent cropIntent = new Intent("com.android.camera.action.CROP");
cropIntent.setData(data.getData());
cropIntent.putExtra("crop", "true");
cropIntent.putExtra("aspectX", 1);
cropIntent.putExtra("aspectY", 1);
cropIntent.putExtra("outputX", 450);
cropIntent.putExtra("outputY", 350);
cropIntent.putExtra("return-data", true);
startActivityForResult(cropIntent, 1);
}else if(requestCode == 1){
Log.d("resultCode", String.valueOf(resultCode));
Bundle extras = data.getExtras();
Bitmap bitmap = extras.getParcelable("data");
ImageView test = findViewById(R.id.test);
test.setImageBitmap(bitmap);
test.setScaleType(ImageView.ScaleType.FIT_XY);
}
super.onActivityResult(requestCode, resultCode, data);
}
当我启动应用程序时,我可以 select 一张照片。之后我的应用程序关闭,因为此行中的 data:Bundle extras = data.getExtras();
returns null。在此之前,resultCode 为 0,这意味着它已取消。我该如何解决?
您可以使用 onActivityResult()
裁剪图像。
此 video 展示了如何使用 setOnClickListener()
.
别忘了在 build.gradle
中设置 implementation
:
implementation 'com.theartofdev.edmodo:android-image-cropper:2.4.+'
祝你好运! :)