图片裁剪关于return-data

这篇博客探讨了在Android应用中进行图片裁剪时如何处理数据返回的问题。通过设置Intent参数,实现了裁剪比例和输出尺寸的控制,并针对特定系统如MIUI无法直接返回data的问题,提出了将裁剪后的图片保存到URI中,然后通过URI获取Bitmap的解决方案。

public void startPhotoZoom(Uri uri) {
DebugLog.e("rx","=================startPhotoZoom 1111111111111111111111");

Intent intent = new Intent("com.android.camera.action.CROP");
intent.setDataAndType(uri, "image/*");
// 设置裁剪
intent.putExtra("crop", "true");
// aspectX aspectY 是宽高的比例
intent.putExtra("aspectX", 3);
intent.putExtra("aspectY", 4);
// outputX outputY 是裁剪图片宽高
intent.putExtra("outputX", 300);
intent.putExtra("outputY", 400);

/**  
    * 此方法返回的图片只能是小图片(sumsang测试为高宽160px的图片)  
    * 故将图片保存在Uri中,调用时将Uri转换为Bitmap,此方法还可解决miui系统不能return data的问题  
    */  
intent.putExtra("return-data", false);

//uritempFile为Uri类变量,实例化uritempFile  
   //Uri tempFile = Uri.parse("file://" + "/" + Environment.getExternalStorageDirectory().getPath() + "/" + "small.jpg");  
   
cropTempName = Environment.getExternalStorageDirectory().getPath()
+ "/" + FileCst.DIR_IMAGE + "/"
+ System.currentTimeMillis() + "_crop_temp.jpg";
   intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(new File(cropTempName)));  
   intent.putExtra("outputFormat", Bitmap.CompressFormat.JPEG.toString());  

startActivityForResult(intent, CROP);
}



intent之间传递数据不能太大, 对于图片好像是160*160.    可以将图片保存在uri中. 此方法还可解决 mini系统不能returndata的问题. 



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值