当前位置: 首页 > news >正文

减肥养生网站建设app开发公司名字

减肥养生网站建设,app开发公司名字,网站开发工程师工作职责,企业网站不被百度收录Android相机调用有原生的Camera和Camera2,我觉得调用代码都太复杂了,CameraX调用代码简洁很多。 说明文档:https://developer.android.com/jetpack/androidx/releases/camera?hlzh-cn 现有查到的调用资料都不够新,对于外接摄像…

Android相机调用有原生的Camera和Camera2,我觉得调用代码都太复杂了,CameraX调用代码简洁很多。

说明文档:https://developer.android.com/jetpack/androidx/releases/camera?hl=zh-cn

现有查到的调用资料都不够新,对于外接摄像头(USB摄像头)这类非前置也非后置摄像头的设备调用,都说是没有实现。旧版本的库可能更多目标用户是基于手机的,1.3.0-alpha03版本针对外接摄像头有增加配置项(CameraSelector.LENS_FACING_EXTERNAL),使用该配置项可以实现外接摄像头的调用。

0,摄像头选择可用值

    /** A camera on the devices that its lens facing is resolved. */public static final int LENS_FACING_UNKNOWN = -1;/** A camera on the device facing the same direction as the device's screen. */public static final int LENS_FACING_FRONT = 0;/** A camera on the device facing the opposite direction as the device's screen. */public static final int LENS_FACING_BACK = 1;/*** An external camera that has no fixed facing relative to the device's screen.** <p>The behavior of an external camera highly depends on the manufacturer. Currently it's* treated similar to a front facing camera with little verification. So it's considered* experimental and should be used with caution.*/@ExperimentalLensFacingpublic static final int LENS_FACING_EXTERNAL = 2;

1,在AndroidManifest.xml添加权限

    <uses-permission android:name="android.permission.CAMERA" /><uses-feature android:name="android.hardware.camera.any" />

2,在settings.gradle或build.gradle添加maven

    repositories {google()mavenCentral()maven { url 'https://jitpack.io' }}

3,在build.gradle添加依赖库

    //摄像头预览库implementation "androidx.camera:camera-core:1.3.0-alpha04"// CameraX Camera2 extensions[可选]拓展库可实现人像、HDR、夜间和美颜、滤镜但依赖于OEMimplementation "androidx.camera:camera-camera2:1.3.0-alpha04"// CameraX Lifecycle library[可选]避免手动在生命周期释放和销毁数据implementation "androidx.camera:camera-lifecycle:1.3.0-alpha04"// CameraX View class[可选]最佳实践,最好用里面的PreviewView,它会自行判断用SurfaceView还是TextureView来实现implementation 'androidx.camera:camera-view:1.3.0-alpha04'

4,开启预览代码

    private ListenableFuture<ProcessCameraProvider> cameraProviderFuture;private PreviewView previewView;private ProcessCameraProvider cameraProvider;ImageView picture = null;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);picture = (ImageView) findViewById(R.id.picture);previewView=findViewById(R.id.previewView);//初始化//高版本系统动态权限申请if (ContextCompat.checkSelfPermission(this, Manifest.permission.CAMERA) == PackageManager.PERMISSION_DENIED) {if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {requestPermissions(new String[]{Manifest.permission.CAMERA,}, 11);}} else {//启动相机startCamera();}takePhoto.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {takePhoto(picture);//取图识别}});}@Overridepublic void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {super.onRequestPermissionsResult(requestCode, permissions, grantResults);if (requestCode==11){//获取权限后,开启摄像头//启动相机startCamera();}}private void startCamera() {// 请求 CameraProvidercameraProviderFuture = ProcessCameraProvider.getInstance(this);//检查 CameraProvider 可用性,验证它能否在视图创建后成功初始化cameraProviderFuture.addListener(() -> {try {ProcessCameraProvider cameraProvider = cameraProviderFuture.get();bindPreview(cameraProvider);} catch (ExecutionException | InterruptedException e) {// No errors need to be handled for this Future.// This should never be reached.}}, ContextCompat.getMainExecutor(this));}//选择相机并绑定生命周期和用例private void bindPreview(@NonNull ProcessCameraProvider cp) {this.cameraProvider=cp;Preview preview = new Preview.Builder().build();@SuppressLint("UnsafeOptInUsageError")CameraSelector cameraSelector = new CameraSelector.Builder().requireLensFacing(CameraSelector.LENS_FACING_BACK)//CameraSelector.LENS_FACING_EXTERNAL.build();preview.setSurfaceProvider(previewView.getSurfaceProvider());cameraProvider.unbindAll();//解绑组件cameraProvider.bindToLifecycle((LifecycleOwner) this, cameraSelector, preview);}//拍照,这里偷懒了,直接取了预览控件的图片,需要拍照的再去看看官方文档吧public void takePhoto(View view){Log.e("OCR", "takePhoto");Bitmap bitmap = previewView.getBitmap();view.setBackground(new BitmapDrawable(getApplicationContext().getResources(),bitmap)); //show picture}@Overrideprotected void onDestroy() {super.onDestroy();cameraProvider.unbindAll();}

5,界面布局

<?xml version="1.0" encoding="utf-8"?>
<androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".MainActivity"><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:layout_margin="5dp"android:orientation="vertical"><androidx.camera.view.PreviewViewandroid:id="@+id/previewView"android:layout_width="300dp"android:layout_height="300dp"android:layout_gravity="center"/><Buttonandroid:id="@+id/take_photo"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_margin="5dp"android:text="取图"/><ImageViewandroid:id="@+id/picture"android:layout_width="300dp"android:layout_height="300dp"android:layout_gravity="center"/></LinearLayout></androidx.coordinatorlayout.widget.CoordinatorLayout>

6,测试效果(文字识别部分请忽略)

s

7,库的调用版本是比较新的,建议JDK版本不要太低,我使用的是16.0.2

新人入行,经验分享,如有所误,欢迎指出~

版权归属:深圳市琪智科技有限公司-花花

http://www.yayakq.cn/news/408580/

相关文章:

  • 商城网站模板 免费网站制作方案答案是螃蟹的迷语
  • 微网站开发哪家好电商公司官网
  • 菜篮网网站开发技术网页版梦幻西游探案任务攻略
  • ae模板素材网站中国建设机械网网址
  • 泉州握旗公司网站建设深圳品牌女装品牌大全
  • 高端网站开发设计简介做系统前的浏览网站能找回吗
  • 烟台电子商务产业园网站建设微信公众号 做不了微网站
  • 全国建筑人才求职招聘网站怎么制作微信小程序后台运行
  • 现在网站一般都是什么语言做的wordpress 分类排行榜
  • 静态网站html网站设计下载
  • 枣庄市网站建设手机网页版浏览器
  • 有域名有服务器如何做网站建筑工程网络数据安全管理系统
  • 注册个人网站域名top人工智能搭建
  • 除了阿里巴巴还有什么网站做外贸的大气html5网络公司网站源码
  • 中国建设银行 英文网站关键词调词平台
  • 研发网站要多长时间静态旅游网站
  • 教学成果申报网站 化工专业建设html5 服装网站
  • 南山网站设计淘宝客网站搭建
  • 网站开发去哪里找工作公共网站怎地做
  • 阿里云网站建设服务费会计科目小程序一般需要多少钱
  • 泰州腾讯网站开发唐山seo快速排名
  • 做网站分类链接买天猫店铺去哪里买
  • 洛阳网站建设联系方式wordpress爆破思路
  • 公司网站制作与维护免版权费自建网站
  • .mom域名可以做网站吗wordpress 数据库宕机
  • 企业网站建设与网页设计学什么的wordpress插件王
  • 5118网站的功能重庆平台网站建设平台
  • 做新网站推广的活动网站建设列表
  • 想学网站建设与设计的书籍快速做网站联系电话
  • 长春自助建站系统做网站开发的有哪些公司