Android拍照流程
Android应用中拍照和录制视频都需要Surface,所以需要创建在Activiy中存在SurfaceView或者VideoView,可以在xml中配置,在代码中加载。同时主Activity中需要implements SurfaceHolder.Callback,实现其中的surfaceCreate, surfaceChanged, surfaceDestoryed三个方法。具体流程如下
First:
SurfaceView mSurfaceView = (SurfaceView)findViewById(R.id.surfaceview);
SurfaceHolder mHolder = mSurfaceView.getHolder();
mHolder.addCallback(this);
当调用addCallback的时候,就会触发SurfaceHolder.Callback回调,执行surfaceCreate方法,可以在surfaceCreate中做一些初始化。
Second:
打开摄像头,进行初始化。如:
Camera mCamera = Camera.open();
mCamera.setPreviewDisplay(mHolder);
当surfaceview被覆盖或者应用结束退出时,surface会destory,执行surfaceDestoryed回调,可以在该回调中释放Camera,如:
mCamera.stopPrevew();
mCamera.release();
mCamera = null;
Thrid:
进行拍照时,调用takePicture接口,传入callback参数,并在最后一个callback中获取byte[] data,并将数据以jpg文件格式保存,如下所示:
mCamera.takePicture(new ShutterCallback(){}, new PictureCallback(){},new PictureCallback(){}, new PictureCallback(){public void onPictureTaken(byte[] data, Camera camera) {save(data)} });
在save方法中通过流输出到指定路径:
File mediaStoragePath = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES), "PicFiles");
String fileName = mediaStoragePath.getPath() + File.sperator + "PIC_" + System.currentTimeMills() + ".jpg";
File pictureFile = new File(fileName);
FileOutputStream fos = new FileOutputStream(picture);
fos.write(data);
fos.close();
转载于:https://blog.51cto.com/spi08breaker/1363714
Android拍照流程相关推荐
- android camera(6)---camera2 拍照流程
android camera2 拍照流程 正文 camera2 API 的加入是从AndroidV5.0(21)开始的,因此我们使用Camera2应该是在Android 5.0(含5.0)之后.同时, ...
- Android手机拍照程序开发,android Camera开发-手机拍照流程
android 拍照API流程 1. 在布局文件中添加一个 surfaceView (摄影平面) 2.根据 SurfaceView 获得 Holder (固定器) 3.给固定器设置 SurfaceH ...
- Android 骁龙Camera拍照流程梳理
本文以SnapdragonCamera为例,分析骁龙Camera的拍照流程,其实现与camera2大致相同. 首先将SnapdragonCamera源码倒入android studio, 具体操作,可 ...
- Android 拍照以及相册中选择(适配高版本)————上传多张照片之压缩处理、在线预览可伸缩放大(二)
______ Introduction ______ 前言 上一篇文章刚给大家总结完,关于上传头像的功能.此文章所述 主要是关于上传头像的具体流程以及如何对照片做裁剪处理,回调给控件显示:当然重中之重 ...
- Android开发流程总结
本文来自肥宝传说之路,引用必须注明出处! Android开发流程总结 首先,发个作品链接先 http://www.mumayi.com/android-550241.html 一.注册开发者账号: 开 ...
- Android拍照录像框架Camera2使用简介
Android拍照录像框架Camera2使用简介 在Android 21时Google更新了以往的摄像头类库Camera,取而代之的是Camera2.作为更新版本,Camera2具有更强功能的同时也增 ...
- Android绘制流程
一.前言 1.1.C++界面库 MFC.WTL.DuiLib.QT.Skia.OpenGL. Android里面的画图分为2D和3D两种: 2D是由Skia 来实现的,3D部分是由OpenGL实现的. ...
- Android事件流程详解
Android事件流程详解 网络上有不少博客讲述了android的事件分发机制和处理流程机制,但是看过千遍,总还是觉得有些迷迷糊糊,因此特地抽出一天事件来亲测下,向像我一样的广大入门程序员详细讲述an ...
- android - 拍照
android 拍照 <uses-permission android:name="android.permission.CAMERA"/><uses-permi ...
最新文章
- 不允许程序员透露薪资!!!凭啥?
- java用符号断开取前面_java-如何读取断开的符号链接指向的路径?
- access创建窗体特别慢_64位Access运行速度很慢的解决办法
- 如何修改Xshell默认存储路径
- 2019ICPC(上海) - Light bulbs(离散化+差分)
- 查看-增强会话_会话式人工智能-关键技术和挑战-第2部分
- openwrt安装蒲公英_网速不给力?双宽带叠加,立马消除卡顿
- HTML5手机重力与方向感应的应用——摇一摇效果
- mybatis 详解(三)------入门实例(基于注解)
- RabbitMQ学习之ConntectionFactory与Conntection的认知
- (转)理解SQLSERVER中的排序规则
- windows下安装canal_Windows环境下python的安装与使用
- php socket访问单片机,可运行在单片机上的UDP通讯协议的实现【上】
- Win10注册.bat或.exe成为系统服务(NSSM)
- 渗透测试中利用社会工程学的巧妙之处
- Google浏览器无法上网问题解决
- 解决python处理word文档时的两个问题,截取内容和页眉横线
- Unity富文本详解
- 您未被授权查看该页 错误 401.3
- [android]so easy实现根据viewpager、edittext、时间使背景动态渐变色效果~