最近在开发应用时有个需求,调用本地摄像头,拍照并返回图片,于是就在网上找到了imagepicker控件,但是现在又要求打开的是前置摄像头,imagepicker里面默认打开的是跟随系统相机的,就是系统相机是前置,那么imagepicker打开的就是前置,系统相机是后置,imagepicker打开的就是后置。无奈之下,只能自己下载imagepicker源码,重新生成aar包。
imagepicker源码参考的是 https://github.com/cysionliu/imagepicker ,这个版本的imagepicker也是在原版本的基础上修改过的,修复了一些空指针的闪退问题。
imagepicker打开摄像头,老的方式是:
Intent intent = new Intent(ActivityA.this, ImageGridActivity.class);
intent.putExtra(ImageGridActivity.EXTRAS_TAKE_PICKERS, true);
startActivityForResult(intent, REQUEST_CODE_PHOTO);
我现在在 ImageGridActivity 中添加了新的类型,即 CAMERA_TYPE,如图
再将这个cameraType传到imagepicker中
0代表后置,1代表前置。
所以我们在使用的时候,再多加一句 intent.putExtra(ImageGridActivity.CAMERA_TYPE, 1);即可
Intent intent = new Intent(ActivityA.this, ImageGridActivity.class);
intent.putExtra(ImageGridActivity.EXTRAS_TAKE_PICKERS, true);
intent.putExtra(ImageGridActivity.CAMERA_TYPE, 1);
startActivityForResult(intent, REQUEST_CODE_PHOTO);
最后附上我重新打包的imagepicker aar包下载链接,使用的时候将imagepicker-debug.aar放到工程下的libs目录下,再在build.gradle文件中添加引用即可。
implementation(name: 'imagepicker-debug', ext: 'aar')
下载链接:
链接:https://pan.baidu.com/s/11HzJBmtl5_OhNWHpeKhhxA
提取码:97tf