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,包括拍照和从相册中选择。
分享到:
相关推荐
本文将深入探讨如何实现Android大图片裁剪的终极解决方案,结合提供的资源包`CropImage-Enhance`,我们将涵盖以下几个关键知识点: 1. **Bitmap的加载与内存管理** - Android中的Bitmap对象占用大量内存,处理不当...
本文将深入探讨如何在Android中实现图片裁剪功能,包括裁剪为缩略图和大图两种形式。 首先,我们需要了解Android中的Bitmap类,它是Android图形库中的核心类,用于表示和操作位图。在裁剪图片时,我们通常会用到...
"Android多图单图裁剪选择器"是一个专门为Android平台设计的组件,它允许用户进行多图或单图的选择,并提供裁剪功能,极大地提升了用户体验和开发效率。接下来,我们将深入探讨这个组件的核心知识点。 1. **多图...
在Android系统中,选择图片和进行裁剪是常见的功能,特别是在用户需要上传个人头像或者进行个性化设置的应用场景。这个话题涉及到多个Android开发的关键知识点,包括Intent机制、多媒体文件访问权限、相机API以及...
在Android开发中,"android图片圆形裁剪框"是一个常见的需求,主要用于实现用户自定义头像或者其他需要圆形显示的图像裁剪功能。本教程将详细讲解如何创建一个简单且实用的圆形图片裁剪框。 首先,我们需要理解...
在Android开发中,实现音频剪辑和裁剪功能通常涉及到多媒体处理、自定义视图以及用户交互设计。本文将深入探讨如何创建一个Android音频剪辑裁剪的自定义View,以便用户可以通过拖动来调整音频的剪切时长,并通过滑块...
这个开源项目解决了原生Android API中图像裁剪功能不足的问题,为开发者提供了更加灵活和定制化的裁剪体验。 一、项目介绍与原理 `android-imagecropview`的核心是`CropImageView`组件,它是一个自定义视图,继承...
在中部裁剪操作中,我们需要使用`Matrix`来设置裁剪区域,确保裁剪出的图片是原图的中心部分。 3. **Rect与RectF**: `Rect`和`RectF`分别代表矩形的整数和浮点数版本,它们在Android图形处理中用于定义区域。在裁剪...
在Android开发中,图片拍摄和裁剪是常见的功能,尤其在社交、相册类应用中。在Android 7.0(API级别24)及更高版本中,由于系统的安全策略升级,开发者需要使用`FileProvider`来处理文件权限,包括拍照后对图片的...
在Android开发中,处理大图是一项常见的挑战,尤其是在需要用户选择或拍摄高分辨率照片后进行裁剪时。本文将深入探讨Android中大图裁剪的方法,以及如何优化这个过程,以确保性能和用户体验。 首先,我们需要理解为...
在Android开发中,实现视频裁剪功能是一项常见的需求,尤其对于多媒体应用来说更是必不可少。本文将深入探讨如何在Android环境中实现在MP4视频文件上的裁剪操作,以及如何自定义裁剪视图(Crop View)。 一、MP4...
本示例"android圆形图片裁剪demo以及实现"就是针对这一需求提供的一种解决方案。下面将详细介绍如何在Android应用中实现圆形图片裁剪功能。 1. **圆角和圆形图片的原理** 在Android中,我们可以通过`BitmapShader`...
"Android-Android仿微信的图片选择器带裁剪功能支持圆形和方形裁剪"这个项目就是这样一个实现,它为开发者提供了完整的解决方案。 首先,我们来探讨一下该项目的核心知识点: 1. **自定义相册**: 在Android中,...
本项目"Android图片选择,裁剪,预览,下载"正是为了解决这些问题而设计的,它提供了一站式的解决方案。 首先,我们要理解"图片选择"这个概念。在Android中,用户可能需要从相册中选取一张或多张图片,这个过程涉及...
"android圆形头像裁剪"是一个常见的需求,它涵盖了从相册选择图片、图像裁剪以及将裁剪后的图片转换为圆形显示等多个技术点。下面我们将详细探讨这些知识点。 1. **相册选择**: 用户通常需要从手机相册中选取图片...
处理大图时,为了防止内存溢出,可以使用`BitmapFactory.Options`的`inSampleSize`属性来降低图片的加载分辨率,减少内存占用。 以上就是Android图片自由裁剪DEMO涉及的关键技术点,通过这个DEMO,开发者可以深入...
总的来说,解决Android 7.0拍照裁剪的兼容性问题需要理解系统的变化,采用适当的API和第三方库,处理好权限问题,并进行充分的设备适配测试。通过这些步骤,你的应用就能在不同Android版本上提供一致的用户体验。
然后,按照2:1的比例计算出裁剪区域的宽高,使用Bitmap.createBitmap方法创建一个新的Bitmap对象,并调用Canvas的drawBitmap方法将原图绘制到裁剪区域。注意处理好宽高比,确保裁剪后的图片保持原始的比例。 接着,...
在Android开发中,图片裁剪是一项常见的功能,用于让用户选择并调整图像的显示部分,比如在上传头像或者编辑照片时。"Android完美图片裁剪"这个话题涉及到多个技术点,我们将逐一深入探讨。 首先,Android系统提供...
在Android应用开发中,图片裁剪功能是一项常用且重要的任务,它允许用户按照特定需求对图像进行选择性地裁剪,以适应应用的各种场景,如设置头像、上传照片等。实现这一功能涉及到多个Android SDK提供的组件和技术。...