android调用系统裁剪功能,Android图片剪裁之调用系统剪裁

参考:一. 原理通过Intent打开系统自带的剪裁Activity,通过Intent设置Extra参数,进行剪裁参数的设定。剪裁结果的缩略图会保存在返回的data中,而大图要通过Uri进行保存(其实就是保存到自己建的文件里面)。二. 剪裁时候可以设置的参数及简介这是一张偷来的图片三. 返回缩略图的使用步骤获取要剪裁的图片(可以通过相册选择,也可以通过相机拍照)PS:此处演示从相册选择(就是从相册选...
摘要由CSDN通过智能技术生成

参考:

一. 原理

通过Intent打开系统自带的剪裁Activity,通过Intent设置Extra参数,进行剪裁参数的设定。剪裁结果的缩略图会保存在返回的data中,而大图要通过Uri进行保存(其实就是保存到自己建的文件里面)。

二. 剪裁时候可以设置的参数及简介

663321bff7d3?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

这是一张偷来的图片

三. 返回缩略图的使用步骤

获取要剪裁的图片(可以通过相册选择,也可以通过相机拍照)PS:此处演示从相册选择(就是从相册选取图片,然后返回一个图片路径的Uri)

//打开相册

Intent intent = new Intent(Intent.ACTION_GET_CONTENT);

intent.setType("image/*");

startActivityForResult(intent, REQ_PIC);

//onActivityResult()里面获取选择的图片

if (requestCode == REQ_PIC) {

mImageUri = data.getData();

crop();//获取到之后开始剪裁

}

设置剪裁Intent及参数

private void cropAndThumbnail(){

Intent intent = new Intent("com.android.camera.action.CROP");

intent.setDataAndType(mImageUri, "image/*");//设置要缩放的图片Uri和类型

intent.putExtra("aspectX", 768);//宽度比

intent.putExtra("aspectY", 1024);//高度比

intent.putExtra("outputX", 768);//输出图片的宽度

intent.putExtra("outputY", 1024);//输出图片的高度

intent.putExtra("scale", true);//缩放

intent.putExtra("return-data", false);//当为true的时候就返回缩略图,false就不返回,需要通过Uri

intent.putExtra("noFaceDetection", false);//前置摄像头

startActivityForResult(intent, R

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
调用系统剪裁功能,你需要使用 Android 的 Intent API,具体步骤如下: 1. 创建 Intent 对象,设置 Action 为 Intent.ACTION_PICK, Data 为 MediaStore.Images.Media.EXTERNAL_CONTENT_URI。 ```java Intent intent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI); ``` 2. 调用 startActivityForResult() 方法,将 Intent 对象传入,并传入一个请求码,以便在 onActivityResult() 方法中识别结果。 ```java startActivityForResult(intent, REQUEST_CODE); ``` 3. 在 onActivityResult() 方法中获取剪裁后的图片。 ```java @Override protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { if (resultCode == RESULT_OK && requestCode == REQUEST_CODE) { if (data != null) { Uri uri = data.getData(); Intent intent = new Intent("com.android.camera.action.CROP"); intent.setDataAndType(uri, "image/*"); intent.putExtra("crop", "true"); intent.putExtra("aspectX", 1); intent.putExtra("aspectY", 1); intent.putExtra("outputX", 200); intent.putExtra("outputY", 200); intent.putExtra("return-data", true); startActivityForResult(intent, CROP_REQUEST_CODE); } } else if (resultCode == RESULT_OK && requestCode == CROP_REQUEST_CODE) { if (data != null) { Bundle bundle = data.getExtras(); if (bundle != null) { Bitmap bitmap = bundle.getParcelable("data"); imageView.setImageBitmap(bitmap); } } } } ``` 在这段代码中,我们首先检查是否成功返回结果,并检查 requestCode 是否与我们之前传入的 requestCode 匹配。如果匹配,我们从 Intent 中获取返回的 Uri,并使用它来创建另一个 Intent 对象,用于调用剪裁功能。在这个 Intent 对象中,我们设置了剪裁的相关参数,包括裁剪后的宽度和高度。最后,我们再次调用 startActivityForResult() 方法,以便在 onActivityResult() 方法中处理剪裁后的结果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值