Android 设置头像——拍照获取图片保存图片进行广播
来源:互联网 发布:python计算最大公约数 编辑:程序博客网 时间:2024/05/16 07:55
Android开发Camera我认为分为2种,
1. 重写Camera添加自己的元素,之前看过一个重写Camera的资料,是这么说的,根据欧标拍照必须有声音,防止偷拍,然后他就说为了开发一种能够偷拍的Android终端软件,重写Camera后将拍照键设置为截屏的操作就没有声音了,但是现在鱼目混杂的Android终端市场,很多手机拍照都没有声音喽;重写Camera还可以仿照美颜相机开发一款自己的相机;是不是学过数字图像处理 文字识别的我该自己给自己写一个Camera软件,待我有好的idea的时候就是干这件事的时候了;
2. 最简单的方法,使用 MediaStore.ACTION_IMAGE_CAPTURE 动作触发一个Intent:
startActivityForResult(new Intent(MediaStore.ACTION_IMAGE_CAPTURE),TAKE_PICTURE);
这将启动一个Camera应用程序来拍摄照片,不需要重写原声Camera应用程序(方法1),就可为用户提供全套的摄像头功能。用户对拍摄照片满意后,该照片就会通过onActivityResult处理程序收到的Intent返回给应用程序。
默认情况下,拍摄的照片将作为一个缩略图返回,通过返回的Intent的data extra可以访问原始位图。
/*** 打开相机拍照获取缩略图,不会保存* */private void getThumbnail() {//打开相机拍摄图片选择Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);context.startActivityForResult(intent, CAMERA_REQUEST_CODE);}
要获得完整图像,必须制定一个用于存储该图像的目标文件,该文件将被编码为一个URI,并在启动Intent中使用MediaStore.EXTRA_OUTPUT extra 传入该URI。
这样摄像头拍摄的完整图像就会被保存到指定位置。Activity结果回调中不会返回缩略图,接收到的Intent的数据将是null;
/*** 打开相机进行拍照,将拍照得到的图片保存到指定路径,得到原图* */protected void getImageSave() {// create Intent to take a picture and return control to the calling// applicationIntent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);String fileName = "Temp_camera" + String.valueOf( System.currentTimeMillis()) + ".jpg";File cropFile = new File( fileDir, fileName);if(cropFile.exists()){cropFile.delete();}Uri fileUri = Uri.fromFile( cropFile);intent.putExtra(MediaStore.EXTRA_OUTPUT, fileUri); // set the image file// namemCurrentPhotoPath = fileUri.getPath();// start the image capture Intentcontext.startActivityForResult(intent, CAMERA_REQUEST_CODE);}
两种情况会在代码中分别体现。
3. 默认情况下,由自己的应用程序创建、并存储在私有应用程序文件中的媒体文件对其他应用程序来说是不可用的。要是这些媒体文件可见,需要把他们插入媒体库中。
Android提供了两种方法:
(1)使用媒体扫描仪来解释文件并将其自动插入。
/*** 使用媒体扫描仪将文件添加到媒体库中* */public static void mediaScan(final String filePath){MediaScannerConnectionClient mscc = new MediaScannerConnectionClient() {private MediaScannerConnection msc = null;{msc = new MediaScannerConnection(context, this);msc.connect();}@Overridepublic void onScanCompleted(String arg0, Uri arg1) {msc.disconnect();}@Overridepublic void onMediaScannerConnected() {//可以选择指定一个MIME类型,或让 Media Scanner 根据文件名自己假定一种类型String mimeType = null;msc.scanFile(filePath, mimeType);}};}
(2)在适当的Content Provider中手动插入一条新纪录。
使用媒体扫描仪几乎总是一种更好的方法。 (摘自Android 4 高级编程(第3版))
注意:如果采用拍照直接保存至本地获取原图,如果打开相机没有拍照而是退出相机,需要删除之前生成的URI。
onActivityResult(int requestCode, int resultCode, Intent data) resultCode=-1 正常拍照,resultCode=0,没拍照直接退出相机。
下载源码:http://download.csdn.net/detail/iliupp/9533104
- Android 设置头像——拍照获取图片保存图片进行广播
- Android 上传图片/头像——取得手机内的图片或拍照取得图片
- android选择系统相机拍照和系统相册,裁剪图片并保存和设置头像,适配至7.0
- android拍照获取图片
- Android拍照并保存(对图片进行压缩,分解)
- Android拍照并保存(对图片进行压缩,分解)
- Android设置头像,手机拍照或从本地相册选取图片作为头像
- Android设置头像,手机拍照或从本地相册选取图片作为头像
- Android设置头像,手机拍照或从本地相册选取图片作为头像
- Android设置头像,手机拍照或从本地相册选取图片作为头像
- android开发 通过拍照或选择本地图片并剪裁图片设置成头像
- Android拍照或选择本地图片并剪裁图片设置成头像
- Android 相机拍照获取图片并保存到指定位置。
- android 选择图片以及拍照,保存图片
- Android从服务器获取图片并设置圆形头像
- Android 通过拍照获取图片
- Android 拍照获取本地图片
- Android实现类似QQ头像点击打开相册或者拍照,并获取裁剪后的图片
- DN文章
- 22. SpringMVC_ModelAttribute注解修饰POJO类型的入参(无写笔记)
- 在unity中UUGI的一些使用和操作
- 利用windows的远程桌面完成Raspberry的首次系统安装
- Android学习笔记(三)
- Android 设置头像——拍照获取图片保存图片进行广播
- Java编程思想第四版第九章学习——接口
- 23. SpringMVC_SessionAttributes注解引发的异常
- maven deploy 的那些事
- 百度地图第二波
- vs2010断点无效
- Android Dev Intro - Limits on setVisible of View
- Android开源项目分类汇总
- Charles抓包工具的使用