Android-crop裁剪图片用法

本文介绍了如何在Android应用中实现图片裁剪功能。首先,详细讲解了如何添加依赖并从相册选择图片进行裁剪,包括五个步骤。接着,阐述了在拍照后如何使用Crop库裁剪图片,同样分为两个步骤。整个过程清晰地指导了开发者如何集成和使用图片裁剪功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

添加依赖

compile 'com.soundcloud.android:android-crop:1.0.1@aar'

通过相册选择图片进行裁剪

step 1

Crop.pickImage(context);

调用Crop.pick方法来打开相册。

step 2

onActivityResult中通过requestCode的值来判断

if (requestCode == Crop.REQUEST_PICK && resultCode == RESULT_OK) {
        /**
         * 当调用相册选择一张图片后,将图片信息通过data传过来
         * data.getData()获取到图片URI
         */
        beginCrop(data.getData());
    }

step 3

    /**
     * 调用Crop.pickImage后选择的图片调用Crop来裁剪
     * @param source  通过相册选择的图片URI
     */
    private void beginCrop(Uri source) {
        Uri destination = Uri.fromFile(new File(getCacheDir(), "cropped"));
        Crop.of(source, destination).asSquare().start(this);
    }

step 4

调用Crop.start()后,在onActivityResult中判断requestCode的值

if (requestCode == Crop.REQUEST_CROP) {
        //调用Crop.start后来到这
        handleCrop(resultCode, data);
    }

step 5

private void handleCrop(int resultCode, Intent result) {
    if (resultCode == RESULT_OK) {
        //如果裁剪正常,resultCode == RESULT_OK则到这里裁剪完成
        tempimg.setImageURI(Crop.getOutput(result));
    } else if (resultCode == Crop.RESULT_ERROR) {
        Logger.d(""+Crop.getError(result).getMessage());
        ShowToast.show(SetAfterRegisterActivity.this, Crop.getError(result).getMessage());
    }
}

拍照后使用Crop裁剪图片

step 1

调用系统相机拍照,设置拍照后的照片的存储URI

Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
                    intent.putExtra(MediaStore.EXTRA_OUTPUT, snocrop);
                    startActivityForResult(intent, 1);// 采用ForResult打开

step 2

onActivityResult中判断requestCode的值,就是刚才打开相机时设置的1.

if (resultCode == RESULT_OK) {
                Crop.of(snocrop, scropped).asSquare().start(this);
            }

这里传入刚才拍的照片的URI和裁剪后图片存放的URI。

由于调用了Crop.step(),所以接下来的步骤跟调用相册进行裁剪的方法一样了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值