簡體   English   中英

如何在 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 一張圖片。 之后我的應用程序關閉,因為此行中的數據Bundle extras = data.getExtras(); 返回 null。 在此之前, resultCode為 0,這意味着它已取消。 我該如何解決?

您可以使用onActivityResult()裁剪圖像。 視頻展示了如何使用setOnClickListener()正確設置它。

不要忘記在您的build.gradle中設置implementation

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

祝你好運: :)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM