【问题标题】:How to crop an image in Android如何在 Android 中裁剪图像
【发布时间】:2021-07-24 04:12:59
【问题描述】:

我想从图库中选择一张图片并对其进行裁剪。我可以选择图片,但我还不能裁剪。 那是我的代码:

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);
}

当我启动应用程序时,我可以选择一张图片。之后我的应用程序关闭,因为这一行中的 dataBundle extras = data.getExtras(); 返回 null。在此之前 resultCode 为 0,这意味着它被取消了。我该如何解决?

【问题讨论】:

标签: android crop


【解决方案1】:

您可以使用onActivityResult() 裁剪图像。 这个video 展示了如何使用setOnClickListener() 正确设置它。

别忘了在build.gradle 中设置implementation

implementation 'com.theartofdev.edmodo:android-image-cropper:2.4.+'

祝你好运! :)

【讨论】:

    猜你喜欢
    • 2015-02-02
    • 2011-09-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多