`
mypyg
  • 浏览: 548048 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

Android调用系统Activity选取图像部分区域

阅读更多
在android联系人界面,点击添加头像后可以选择一个图像的部分区域来作为头像。
查看了一下代码,模仿着写了一段从文件中选择部分区域:
Intent intent = new Intent("com.android.camera.action.CROP");
intent.setClassName("com.android.camera", "com.android.camera.CropImage");
File file = new File(filePath);
Uri uri = Uri.fromFile(file);
intent.setData(uri);
intent.putExtra("crop", "true");
intent.putExtra("aspectX", 1);
intent.putExtra("aspectY", 1);
intent.putExtra("outputX", 96);
intent.putExtra("outputY", 96);
intent.putExtra("noFaceDetection", true);
intent.putExtra("return-data", true);                                
startActivityForResult(intent, REQUEST_CROP_ICON);

在1.6系统上出现了选择图像界面,但是在2.1系统上程序崩溃,查看输出发现是没有权限。
试了Camera权限无效,上网搜索,原来2.1系统对这个调用进行了修改,uri不让传file:///了,只能传图库中的图片,比如此类uri:content://media/external/images/media/3,只好加了一步从图库中选取图像的步骤,在响应图库选择文件的处理函数中调用图片选取Activity,代码如下:
Intent intent = new Intent("com.android.camera.action.CROP");
intent.setData(data.getData());     //data是图库选取文件传回的参数
intent.putExtra("crop", "true");
intent.putExtra("aspectX", 1);
intent.putExtra("aspectY", 1);
intent.putExtra("outputX", 96);
intent.putExtra("outputY", 96);
intent.putExtra("noFaceDetection", true);
intent.putExtra("return-data", true);                                
startActivityForResult(intent, REQUEST_CROP_ICON);

当图片选取Activity返回后,将选取的内容保存:
Bundle extras = data.getExtras();
if(extras != null ) {
	Bitmap photo = extras.getParcelable("data");
	ByteArrayOutputStream stream = new ByteArrayOutputStream();
	photo.compress(Bitmap.CompressFormat.JPEG, 75, stream);
        //将流写入文件或者直接使用
}
3
0
分享到:
评论
1 楼 qiaoweishu 2010-11-19  
喜欢这种深究的方式,学习了!

相关推荐

    Android拍照,相册选取图片后剪切

    2. **相册选取**:Android的`Intent`机制使得我们可以方便地启动系统相册应用,让用户选取图片。通过创建一个`Intent`,设置其类型为`Intent.ACTION_PICK`或`Intent.ACTION_GET_CONTENT`,并指定`android.provider....

    Android调用系统相机/相册并裁剪源码

    在Android应用开发中,与用户交互是至关重要的,而图像处理功能则是许多应用程序不可或缺的部分。本文将详细讲解如何在Android中调用系统相机和相册,并实现图片的裁剪功能。我们将通过一个简单的示例项目——`...

    android 获取界面部分view,view截图,生成bitmap图片

    Android的UI系统基于View和ViewGroup构建,一个ViewGroup可以包含多个View。当我们说“获取界面部分view”时,实际上是指选取特定的View实例,这可能是一个按钮、文本框、自定义视图等。我们可以通过View的`...

    Android 颜色选取控件.rar

    在Android开发中,颜色选取控件是一个非常实用的组件,它允许用户在应用程序中选择颜色。这个"Android 颜色选取控件.rar"压缩包可能包含了一个自定义的色彩选择器实现,供开发者集成到自己的应用中。下面将详细讨论...

    Android系统上的卡通化和皮肤变换

    通过这种方法,可以精确地选取图像中的皮肤区域,并对这些区域应用特定的色彩或亮度调整,从而改变皮肤的外观。 在《深入理解OpenCV》的第一章中,读者将学习如何使用OpenCV的API来实现这些功能。这可能包括创建...

    Android-photopicher-仿照微信拍照和选取图片

    综上所述,"Android-photopicher-仿照微信拍照和选取图片"项目涵盖了Android Intent使用、图片处理、图片加载框架集成、多媒体数据库操作、图像裁剪与压缩以及权限管理等多个关键知识点。开发者通过这个项目可以提升...

    拍照或相册选取单张照片(适于头像)

    在Android系统中,这两个组件通常通过Intent进行调用。Intent是一种在不同组件之间传递信息的方式,它可以启动一个活动(Activity)或者服务(Service)。 1. **调用相机(Camera)**: - 创建一个Intent,指定...

    Android项目,从相册,拍照将图片剪切成头像并保存,

    在Android应用开发中,将图片从相册选取或...以上就是"UploadPicDemo-master"项目涉及的主要知识点,涵盖了从启动相机、选取相册图片、裁剪图像到保存头像的整个流程,是学习Android图像处理和用户交互的一个典型实例。

    android系统黑白棋游戏源码

    4. Activity与Fragment:Activity是Android应用中的一个可视窗口,而Fragment可以看作是Activity的一部分,用于创建更复杂的用户界面。 二、游戏逻辑实现 1. 棋盘结构:黑白棋游戏棋盘通常是8x8的网格,可以通过二...

    android登录注册界面设计demo

    Android使用XML文件来定义用户界面布局,例如`activity_login.xml`和`activity_register.xml`。这些文件通常包含各种视图元素,如EditText(文本输入框)用于用户输入用户名和密码,Button(按钮)用于触发登录或...

    android裁剪和人脸识别示例

    3. 使用`FaceDetector`检测:调用`FaceDetector.detect()`方法,传入`Bitmap`和`FaceDetector.Face[]`数组,后者用于存储检测到的人脸信息。 4. 处理人脸:遍历`Face`数组,获取每个脸部的位置、眼睛距离等信息。 5....

    Android中可用Intent启动的常见系统功能说明.pdf

    例如,设置`intent.setType("vnd.android.cursor.item/phone")`可以选取电话号码,而`intent.setType("image/*")`则可以选取图像。 9. **打开多个应用选取数据**: 这个功能允许用户在多个应用中选取数据,返回的...

    Android中照相,从相册选取照片,压缩,保存到手机内存,展示到界面,点击放大,上传demo

    在Android应用开发中,涉及到用户交互的图像处理是常见的需求,比如拍照、选择相册中的图片、图片压缩、保存到本地以及在界面上展示和上传等操作。以下将详细讲解这些知识点。 1. **调用相机接口**: Android提供...

    基于Android的明信片大作业

    根据Android的新权限模型,应用在运行时可能需要请求访问用户的媒体库或网络,因此,理解和使用Android的权限系统是必要的。 10. **测试与调试** 最后,学生需要学习如何编写和执行单元测试,以及如何使用Android...

    Android选择图片并裁剪(支持5.0)

    这个功能允许用户从他们的设备中选取一张照片,然后根据应用的需求进行裁剪,以确保图像符合特定的尺寸比例或格式。在Android 5.0(Lollipop)系统中,虽然API有所更新,但仍然可以使用兼容库来实现对早期版本的支持...

    Android ocr app开发例子

    【Android OCR App 开发详解】 在移动应用领域,光学字符识别(OCR)技术被广泛用于自动识别和提取图像中的文字信息。...总之,Android OCR应用的开发是一个结合了Android基础、图像处理和OCR技术的综合实践。

    android4.3图库源码

    4. 学习Android框架:源码中涵盖了Activity、Service、ContentProvider、BroadcastReceiver等多个组件,是学习Android系统架构的宝贵资料。 总之,Android 4.3 图库源码是一个深入理解Android多媒体处理机制的窗口...

    Android 二维码扫描 长按二维码识别 相册识别 状态栏颜色设置

    当用户对屏幕上的二维码图像进行长按时,可以截取该区域的图像,然后通过Zxing的解码功能进行识别。需要注意的是,长按识别可能需要对图片进行预处理,确保二维码区域清晰可读。 3. **相册识别**:允许用户从手机...

    android使用拍照和本地相册

    Intent是Android系统中用于组件间通信的一种方式,它可以用来启动一个活动(Activity)或者服务(Service)。在本例中,我们使用Intent来启动设备的相机应用和相册应用。创建一个Intent对象,指定ACTION_IMAGE_CAPTURE...

Global site tag (gtag.js) - Google Analytics