在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);
//将流写入文件或者直接使用
}
分享到:
相关推荐
一个简单的小demo ,代码简洁明朗。 点击按钮访问系统相册选取图片显示到imageview之上。
android 中调用系统自带的录音机进行录音
应开发需要,不想调用第三方库实现功能。调用系统相机拍照,系统相册进行多选。注意多选照片时要长按一张图片变为多选。
最近在做调用系统闹钟,在网上找了半天发现很多人都遇到同样的问题,由于厂商不同闹钟的包名也是不同的,比如HTC:com.htc.android.worldclock,三星:com.sec.android.app.clockpackage。在经过深思之后写了一个...
android 利用intent调用activity 简明精炼的例子 传递数据,并且有返回值
使用Qt for android调用原生系统的摄像头来录取设备,稳定高效,使用于安卓7.0版本及以上,测试在魅族5.0会后台死掉,但是录像会成功
Android使用Activity用作弹出式对话框
Android总Activity的启动模式分为四种: Activity启动模式设置: <activity android:name=".MainActivity"android:launchMode="standard" /> Activity的四种启动模式: 1.standard 模式启动模式,每次激活...
这个工程是使用activity-alias创建应用的别名的Deom,有需要的可以下载
service在后台下载,与前台多个activity通信,结果发现有一个坑,找到原因后,跟大家一起分享。
昨天把Ogre3d 编译到Android 平台安装之后,再回头看代码才发现,在Android工程中居然没有Java源文件,从Manifest文件中才知道原来使用的是 NativeActivity 。这一下让我犯糊涂,没有Java文件,没有Activity,那我要...
Android判断栈顶activity;打印当前最顶层的activity类名;采用服务后台运行获取当前activity类名;是一个demo App,使用Android studio工具打开,有需要的可以自行下载;
Android 内部 启动Activity 时序图,了解activity在系统的启动流程对Android开发的同事很有帮助
android 调用系统照相机功能 ,包括摄像机视频调用
通过Intent调用Android系统自带Activity界面实现多媒体功能的例子,包括录制、选择、播放音视频,以及拍照、选择、查看照片。这种方式代码简单,运行稳定;但界面固定,不够灵活。系统自带Activity也包括从外部存储...
Android调用系统分享,分享文字和图片到其他应用,
启动后台service后,service内跑一个线程,5秒后发送一个广播给系统,Activity接收到该广播后显示service发送的信息。本例主要是实现后台service与前activity的交互
SIFT算法便是其中之一,但传统的SIFT算法应用于图像识别过程中数据量大、计算耗时长,提出了一种基于SURF算法的图像识别方法,并使用Android NDK调用OpenCV在Android手机平台上实现了一套图像识别系统,结果表明,基于...
本代码为android学习初步的activity转换,已在win7下调试通过
androidAPK外部调用应用activity