cropimage

可以调用手机自带的com.android.camera.action.CROP这个Intent进行裁剪
通过设置输出大小可以得到图片的大小:
intent.putExtra(“outputX”, outputX);
intent.putExtra(“outputY”, outputY);
但是当outputX或者outputY 大小设置为320以上的时候,会发现完全没有效果。
通过搜索才发现了这个问题原来是这样的:
Mobile devices typically have constrained system resources.
Android devices can have as little as 16MB of memory available to a single application.
在Android2.3中,默认的Bitmap为32位,类型是ARGB_8888,
也就意味着一个像素点占用4个字节的内存。3200*2400*4 bytes = 30M。
消耗这样大的内存当然不可能实现。

看看com.android.camera.action.CROP这个Intent可以设置的参数:

crop_params
data和MediaStore.EXTRA_OUTPUT都是可选的传入数据选项,可以选择设置data为Bitmap,或者将相应的数据与URI关联起来,
你也可以选择是否返回数据(return-data: true)。

使用return Bitmap的话有限制不能太大,那么如果要裁剪大图的话只能使用URI这个参数了。
public Intent getCropImageIntent() {
Intent intent = new Intent(Intent.ACTION_GET_CONTENT, null);
intent.setType(“image/*”);
intent.putExtra(“crop”, “true”);
intent.putExtra(“aspectX”, 1);
intent.putExtra(“aspectY”, 1);
intent.putExtra(“outputX”, 600);
intent.putExtra(“outputY”, 600);
intent.putExtra(“noFaceDetection”, true);
intent.putExtra(“scale”, true);
intent.putExtra(“return-data”, false);
intent.putExtra(MediaStore.EXTRA_OUTPUT, photoUri);
intent.putExtra(“outputFormat”, Bitmap.CompressFormat.JPEG.toString());
return intent;
}
下面是整理好的Demo,包括拍照和从相册中选择。

更多相关文章

  1. “罗永浩抖音首秀”销售数据的可视化大屏是怎么做出来的呢?
  2. Nginx系列教程(三)| 一文带你读懂Nginx的负载均衡
  3. 不吹不黑!GitHub 上帮助人们学习编码的 12 个资源,错过血亏...
  4. 学习音频之android中AudioRecord采集音频的参数说明
  5. Android(安卓)LruCache内存缓存图片
  6. 浅析Context及可能带来的内存泄漏问题
  7. android 将一些信息保存到本地,以后更新版本或者替换之后,数据在新
  8. Android四种联网方式
  9. Android(安卓)UI设计--新闻或信息条数的实现

随机推荐

  1. android bindingAdapter progressbar men
  2. Android(安卓)交叉编译
  3. Android(安卓)五种常用dialog的使用
  4. Android中自定义属性基本步骤
  5. Android(安卓)Studio Arctic Fox | 2020.
  6. Android(安卓)widget使用
  7. Android保存图片到图库,Android扫描文件到
  8. java 后端实现WebSocket学习篇和客户端An
  9. Qt for Android(安卓)拉起微信登录、分享
  10. 日趋饱和的Android程序员行业,这一行在未