OkCamera,Android 相机应用开发通用库

转载请声明出处:http://blog.csdn.net/andrexpert/article/details/79302576

    

    明天就可以回家过年了,有点小激动,于是乎赶紧写篇文章压压惊!本文主要介绍最近写的一个Camera开发通用库-OkCamera ,OkCamera库是我另外一个开源项目(AndroidFastDevelop,目前孵化中...)的一个模块,主要为应用开发提供各种Camera操作。AndroidFastDevelop,顾名思义,它是一个Android应用快速开发框架,其目标是通过该框架能够快速、简洁而不失优美的开发性能较高的Material Design风格APP。它基于MVP或MVVM模式实现,将提供一些功能较为强大的常用控件、音视频开发库、权限管理库、UVCCamera以及常用第三方框架的高级封装等。

    AndroidFastDevelop是我2018年前期的奋斗目标,这里还是回到OkCamera的介绍。一句话,我希望通过OkCamera库,能够满足你使用Camera做出能够想到的功能,比如变焦、录像、拍照、推流、美化等等...

 

一、如何使用OkCamera库

1. 添加到Android Studio工程

(1) 修改根目录下的build.gradle文件

allprojects {repositories {...maven { url 'https://jitpack.io' }}}

(2)添加依赖到module的build.gradle文件

dependencies {     compile 'com.github.jiangdongguo:OkCamera:1.0'}  

 

 

2. APIs介绍

(1) 创建CameraHelper ,为Camera传递SurfaceView,开始渲染

  CameraHelper mCamHelper = CameraHelper.createCameraHelper();  mCamHelper.setSurfaceView(mSurfaceView);  

其中,mSurfaceView是SurfaceView的一个实例,用于渲染Camera数据。当然,如果你需要监听变焦、预览数据等事件,需要注册CameraHelper.OnCameraHelperListener

 

事件监听器,代码如下:

mCamHelper.setOnCameraHelperListener(new CameraHelper.OnCameraHelperListener() {          @Override          public void OnTakePicture(String path, Bitmap bm) {              // do something...          }          @Override          public void onCameraFocus(boolean success, Camera camera) {             // do something...          }          @Override          public void onCameraPreview(byte[] data, Camera camera) {             // do something...          }          @Override          public void onZoomChanged(int maxZoomVaule, int zoomValue) {             // do something...          }     });

(2) 拍摄JPG图片,OKCamera会始终保证你拍出来的照片方向是正常的

mCamHelper.takePicture(picPath);  

(3) 录制Mp4视频,OkCamera会根据手机的方向自动适应

mCamHelper.startRecordMp4(videoPath);mCamHelper.stopRecordMp4();  

(4) 手动对焦、切换分辨率 or 切换前后置摄像头

mCamHelper.cameraFocus();mCamHelper.switchCamera();mCamHelper.updateResolution(int width, int height);

     除此之外,OkCamera还会自动对焦等。当然,目前截止,OkCamera仅完成50%左右,后续还会添加各种配置参数API以及结合OpenCV来处理图像。如果你有这里没有的需求,也可以留言,我会尽量做到覆盖到Camera所有相关功能。

 

GitHub项目:https://github.com/jiangdongguo/OkCamera (欢迎讨论,star & fork)

 

更多相关文章

  1. Android之使用Android-query框架进行开发(一)
  2. Android(安卓)7.0 给开发者带来了什么
  3. Android开发的未来发展方向
  4. Android(安卓)网络框架 Retrofit 源码解析
  5. 2019最新《Android开发全套学习教程》
  6. Android特色开发(1):传感器
  7. Google Android应用开发04 Android应用程序结构
  8. Android开发资源完全汇总
  9. Android简明开发教程九:创建应用程序框架

随机推荐

  1. Plotly中4种文本类型设置详解
  2. 裸辞,杀回一线!
  3. Ansible 之 自动化部署redis主从(单机)
  4. 小鹿又熬肝写了一份 Vue 2.0 核心原理!
  5. 《Python知识手册》更新V2.2版,添加 Plotl
  6. TensorFlow 实战多元线性回归问题
  7. 小鹿 | 谈谈我的三观!
  8. 深度学习中几种常用框架的介绍
  9. 零基础学习Python列表操作
  10. 这么用 if-else,小鹿差点被辞退!