关于Android 选择相册图片裁剪的坑

  1. 选择相册
    这是一个通用的选择相册的方法.
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);//ACTION_OPEN_DOCUMENT
        intent.addCategory(Intent.CATEGORY_OPENABLE);
        intent.setType("image/*");
        startActivityForResult(intent, SELECT_PIC);

在onActivityForResult获取data。至于怎么获取图片uri可以参考一下链接http://blog.csdn.net/tempersitu/article/details/20557383

2.图片裁剪

/** 
     * 调用系统裁剪图片的方法,可以选择参数为Uri对象 或者 Bitmap对象 
     *  
     * @param uri 
     */  
    public void cropPhoto(Uri uri) {  
        Intent intent = new Intent("com.android.camera.action.CROP");  
        //IMAGE_UNSPECIFIED = "image/*"
        intent.setDataAndType(uri, IMAGE_UNSPECIFIED);  
        // 发送裁剪信号  
        intent.putExtra("crop", "true");  
        // aspectX aspectY 是宽高比例  
        intent.putExtra("aspectX", 1);  
        intent.putExtra("aspectY", 1);  
        // outputX outputY 是裁剪输出图片宽高  
        intent.putExtra("outputX", 400);  
        intent.putExtra("outputY", 400);
        //注意这里,scale参数的意思是是否保留原有尺寸,
        //如果为true,则截取的图片无论大小尺寸就是所设outputX,outputY。
        //但是,但是,但是!重要的事情说三遍.
        //如果截图的图片小雨所设的宽高,你截取的图片会居中,图片周围黑色填满,.经测只有部分国产手机会这样
        intent.putExtra("scale", false);
        intent.putExtra("outputFormat", Bitmap.CompressFormat.JPEG.toString());
        // intent.putExtra(MediaStore.EXTRA_OUTPUT, uri);//直接输出文件uri,如果想保留原有图片则新建一个图片文件传入uri 
        intent.putExtra("noFaceDetection", true); //关闭人脸检测  
        intent.putExtra("return-data", false); // 是否返回数据,如果用于屏幕显示缩略图,则传入true,一般直接取uri就可以了
        startActivityForResult(intent, REQUEST_CODE_CUT);  
    }  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值