欢迎来到天天文库
浏览记录
ID:33853990
大小:54.50 KB
页数:10页
时间:2019-03-01
《在android中实现视频抓拍与照片自由裁剪的编程方法》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、在Android中实现视频抓拍与照片自由裁剪的编程方法在Android操作系统下可通过编程实现对视频图像进行抓拍并对图片的裁剪与上传功能。简单的实现方法采用Android自带有关于照片的自由裁剪,非常适用及视频抓拍的接口功能。一、视频抓拍1、基本类Android框架通过CameraAPI或者camerIntent的方式,支持捕捉图像和视频。相关的大类主要有以下几个:(1)Camera摄像时候必须调用到的类;(2)SurfaceView提供摄像头预览。(3)MediaRecorder录像时候用到的类;(4)Intent如果不通过Camera对象来操控摄像头,那么用两
2、个intent动作MediaStore.ACTION_IMAGE_CAPTUREorMediaStore.ACTION_VIDEO_CAPTURE也能够实现摄影和录像。oMediaStore.ACTION_IMAGE_CAPTURE——向内置摄像头程序请求图像的意图活动类型。oMediaStore.ACTION_VIDEO_CAPTURE——向内置摄像头程序请求视频的意图活动类型。2、Manifest声明在使用CameraAPI前,必须做出使用Camera硬件的声明。主要有下面点:(1)Camera允许:(注意,如果是通过intent意图来操控的,则不需要下面声明
3、)(2)Camera特征,比如说名字(3)如果你要在SD卡中保存照片和视频,那么就得开启SD卡权限(4)录音权限4、sion.RECORD_AUDIO"/>(5)如果希望在照片中插入GPS当地信息,还得开启GPS3、使用方法使用摄像头的方法有两种:一种是编写代码比较少的,快速使用摄像头的意图Intent方法;另外一种就是自动外观的摄像头用户界面,要求编写更多的代码。4、使用Intent快速应用摄像头:使用默认配置拍摄并保存/**前置摄像头抓拍**//*--------------------------摄像头程序-begin------5、--------------------------*/camera_catch.setOnClickListener(newOnClickListener(){@OverridepublicvoidonClick(Viewsource){Intentcapture_intent=newIntent(MediaStore.ACTION_IMAGE_CAPTURE);//创建一个文件来保存图片Fileout=newFile(capture_path);//转换为URI地址Uriuri=Uri.fromFile(out);//设置图片保存capture_intent.6、putExtra(MediaStore.EXTRA_OUTPUT,uri);//图片质量为高capture_intent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY,1);//启动拍照意图startActivityForResult(capture_intent,CAPTURE_REQUEST_CODE);}});}/**拍照,并保存数据,通过重写onActivityResult方法去返回处理结果给主main:RFID**/@OverrideprotectedvoidonActivityResult(intrequestCode7、,intresultCode,Intentdata){//重写父类方法super.onActivityResult(requestCode,resultCode,data);if(requestCode==CAPTURE_REQUEST_CODE)//判断是摄像头请求{if(resultCode==RESULT_OK){//拍照图像显示Bitmapcapture_bm=(Bitmap)data.getExtras().get("data");p1_image.setImageBitmap(capture_bm);FilecaptureFile=newFile(ca8、pture
4、sion.RECORD_AUDIO"/>(5)如果希望在照片中插入GPS当地信息,还得开启GPS3、使用方法使用摄像头的方法有两种:一种是编写代码比较少的,快速使用摄像头的意图Intent方法;另外一种就是自动外观的摄像头用户界面,要求编写更多的代码。4、使用Intent快速应用摄像头:使用默认配置拍摄并保存/**前置摄像头抓拍**//*--------------------------摄像头程序-begin------
5、--------------------------*/camera_catch.setOnClickListener(newOnClickListener(){@OverridepublicvoidonClick(Viewsource){Intentcapture_intent=newIntent(MediaStore.ACTION_IMAGE_CAPTURE);//创建一个文件来保存图片Fileout=newFile(capture_path);//转换为URI地址Uriuri=Uri.fromFile(out);//设置图片保存capture_intent.
6、putExtra(MediaStore.EXTRA_OUTPUT,uri);//图片质量为高capture_intent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY,1);//启动拍照意图startActivityForResult(capture_intent,CAPTURE_REQUEST_CODE);}});}/**拍照,并保存数据,通过重写onActivityResult方法去返回处理结果给主main:RFID**/@OverrideprotectedvoidonActivityResult(intrequestCode
7、,intresultCode,Intentdata){//重写父类方法super.onActivityResult(requestCode,resultCode,data);if(requestCode==CAPTURE_REQUEST_CODE)//判断是摄像头请求{if(resultCode==RESULT_OK){//拍照图像显示Bitmapcapture_bm=(Bitmap)data.getExtras().get("data");p1_image.setImageBitmap(capture_bm);FilecaptureFile=newFile(ca
8、pture
此文档下载收益归作者所有