欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 健康 > 养生 > TakePhotoX

TakePhotoX

2025/6/28 6:09:00 来源:https://blog.csdn.net/guodashen007/article/details/142173629  浏览:    关键词:TakePhotoX

Demo下载

TakePhotoXDemo Android 版本 APK 下载 - PGYER.COM 安装密码:123456

GitHub - yijiebuyi/TakePhotoX: 基于CameraX 实现拍照,二维码扫描,录像 

功能

  • 支持前后摄像头切换
  • 支持4:3 16:9 1:1 图片拍摄
  • 支持二维码扫描识别
  • 支持灯光控制

使用

  • 1.在project的build.gradle添加如下代码
allprojects {repositories {...maven { url "https://jitpack.io" }}
}
  • 2.依赖androidx
dependencies {implementation 'com.github.yijiebuyi:TakePhotoX:v1.2.2'
}

拍照基本用法:

  • 使用CameraView,自己实现相机ui
//CameraView对外提供的功能,详细见ICamera,IFlashLight//CameraView使用
private CameraView mCameraView;
//================常用的功能如下=================
//拍照
mCameraView.take();
//对焦
mCameraView.focus(float x, float y, float rawX, float rawY);
//切换前置后置
mCameraView.switchFace();
//相机切换预览比例和拍照比例
mCameraView.switchAspect(@ExAspectRatio.ExRatio int ratio);//================设置回调======================
//设置拍照回调
mCameraView.setOnCameraListener(OnCameraListener l);
//设置对焦回调
mCameraView.setOnFocusListener(OnFocusListener l);    
//设置图片分析回调
mCameraView.setOnImgAnalysisListener(OnImgAnalysisListener l);
//设置前后摄像头切换回调
mCameraView.setOnCameraFaceListener(OnCameraFaceListener l);
//设置相机预览view的布局和尺寸变化回调
mCameraView.setOnPreviewLayoutListener(OnPreviewLayoutListener l);
  • 也可以使用CameraFragment,使用默认的提供的ui效果
   FragmentManager fm = getSupportFragmentManager();FragmentTransaction ft = fm.beginTransaction();final CameraFragment cfg = new CameraFragment();CameraOption option = new CameraOption.Builder(ExAspectRatio.RATIO_16_9).faceFront(false).build();Bundle data = new Bundle();data.putSerializable(CameraFragment.KEY_CAMERA_OPTION, option);cfg.setArguments(data);cfg.setOnCameraListener(new OnCameraListener() {@Overridepublic void onTaken(Uri uri) {//返回拍照图片uri}@Overridepublic void onCancel() {finish();}});
  • 直接使用CameraXActivity
startActivityForResult(new Intent(MainActivity.this, CameraXActivity.class), 1000);@Overrideprotected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {super.onActivityResult(requestCode, resultCode, data);if (resultCode == RESULT_OK && data != null) {//返回拍照的图片地址Uri uri = data.getData();}}

二维码扫描基本用法:

注:需要依赖zxing的包

  • 二维码扫描 直接使用QrCodeFragment
setWrapQrCodeCallback
  • 二维码扫描 使用QRCodeView
    mQRCodeView = new QRCodeView(mContext);mQRCodeView.setOnQrCodeCallback(QrCodeCallback callback);mQRCodeView.setScannerFrameOption(new ScannerFrameOption.Builder().frameMode(ScannerFrameOption.FrameMode.MODE_FRAME_SQUARE).frameRatio(0.6f).build());//add mQRCodeView

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词