目前Android中有很多项目需要实现拍照及录像功能,通常都使用camera和sufaceView实现,整个过程较为繁琐,并且代码量比较大。偶然在github上发现一个很好用的框架,在这里做一个简单介绍,后附github地址。
gif:
原项目中没有照明功能,由于项目中定义的camera我私有变量,如果需要照明功能的同学可以下载demo中的library,不需要的同学可以直接添加引用:
- compile 'com.flurgle:camerakit:0.9.17'
cameraview中拍照的图片一般在1M左右,需要上传的话最好先进行压缩,这里我引用了另一个github上的压缩工具,gradle引用:
-
- compile 'id.zelory:compressor:2.0.0'
下面进入实际使用,首先是拍照和录像监听
- mCameraView.setCameraListener(new CameraListener() {
- @Override
- public void onPictureTaken(final byte[] jpeg) {
- super.onPictureTaken(jpeg);
- new Thread(new Runnable() {
- @Override
- public void run() {
-
- File file = CameraUtils.getFile(jpeg, getExternalCacheDir().getAbsolutePath(), System.currentTimeMillis() + "_original.jpg");
- try {
-
- final File compressedImageFile = new Compressor(MainActivity.this).setDestinationDirectoryPath(file.getParent()).compressToFile(file);
- Log.i(TAG,