
camera2 (api2)打开预览过程(二)
发布日期:2021-05-19 23:22:19
浏览次数:22
分类:精选文章
本文共 3445 字,大约阅读时间需要 11 分钟。
NonNull TextView mPreviewSurfacebookContainer hideOriginal = null;private ImageView mPreviewImageView;privateView mPreviewSetting;private TextView mPreviewCornerRadius;privateView mPreviewTexture;
@Overridepublic void onConfigurationChanged() { super.onConfigurationChanged(); if (mPreviewSurfacebookContainer != null) { mPreviewSurfacebookContainer.setVisibility(GONE); } if (mPreviewTexture != null) { mPreviewTexture.setVisibility(GONE); } mBackground.setVisibility(GONE); mPreviewContainer.setVisibility(GONE); mPreviewSetting.setVisibility(GONE); mPreviewCornerRadius.setVisibility(GONE); mPreviewImageView.setVisibility(GONE); mPreviewSurfacebookContainer = null; mPreviewTexture = null;}public void setPreviewTexture(final SurfaceTexture texture) { if (mPreviewSurfacebookContainer == null) { mPreviewSurfacebookContainer = new FrameLayout(context); mPreviewSurfacebookContainer.setVisibility(View.VISIBLE); mPreviewSurfacebookContainer.setPadding(0, 0, 0, 0); mPreviewTexture = new SurfaceView(context); mPreviewTexture.setFixedSize(480, 640); mPreviewSurfacebookContainer.addView(mPreviewTexture); // 添加触摸控件 mPreviewTexture.setOnTouchListener(new View.OnClickListener() { @Override public void onClick(View v) { // Default action: zoom in if (mCamera == null) { Toast.makeText(context, "没有初始化相机,无法预览和拍照", Toast.LENGTH_LONG).show(); return; } if (mCameraState != null) { if (mCameraState.isPreviewStarted()) { mCamera.session.createpreview(); } } } }); } mPreviewTexture.set(movieTexture); mPreviewSurfacebookContainer.invalidate();}public void setPreviewContainer(final FrameLayout container) { mPreviewSurfacebookContainer = container;}public void setPreviewSetting(final View setting) { mPreviewSetting = setting;}public void setPreviewCornerRadius(final TextView cornerRadius) { mPreviewCornerRadius = cornerRadius;}@Overridepublic void onRequestPermissionsResult(final int requestCode, final String[] permissions, final int[] grantResults) { super.requestPermissionsResult(requestCode, permissions, grantResults); mCameraHandler.post(new Runnable() { @Override public void run() { if (requestCode == grantsAccessPermissionCode) { if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) { //Cette permission est accordée, lungs à camera mCamera.startPreview(); } } } });}public void setPreview(final Surface)previewSurface { mPreviewSurface = previewSurface; mCamera.setPreview(previewSurface);}public void startPreview() { if (context == null || mPreviewSurfacebookContainer == null || mPreviewTexture == null) { return; } if (!mCamera.startPreview()) { Toast.makeText(context, "无法启动预览界面", Toast.LENGTH_LONG).show(); return; } mPreviewSurfacebookContainer.setVisibility(VISIBLE); mPreviewSetting.setVisibility(VISIBLE); mPreviewCornerRadius.setVisibility(VISIBLE); mPreviewContainer.setVisibility(VISIBLE); mPreviewImageView.setVisibility(VISIBLE); mBackground.setVisibility(VISIBLE);}
发表评论
最新留言
初次前来,多多关照!
[***.217.46.12]2025年05月16日 18时58分05秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
linux编译升级应用,Linux如何升级软件版本
2023-02-05
linux编译注解
2023-02-05
linux网络启动报错
2023-02-05
Linux网络命令大全,收藏不迷路!
2023-02-05
Linux网络基础命令
2023-02-05
Linux网络属性配置命令和管理详解
2023-02-05
Linux网络带宽状态分析实战
2023-02-05
Linux网络带宽状态分析工具详解
2023-02-05
Linux网络管理工具:ifconfig,从入门到精通
2023-02-05
linux网络结构体
2023-02-05
linux网络编程二十:socket选项:SO_RCVTIMEO和SO_SNDTIMEO
2023-02-05
Linux网络编程常见面试题
2023-02-05
linux网络编程概念(一)
2023-02-05
Linux网络设备驱动 _驱动模型
2023-02-05
Linux网络配置与故障排除
2023-02-05
linux脚本执行报错:坏的解释器: 没有那个文件或目录
2023-02-05
Linux自主访问控制——有效ID与真实ID
2023-02-05
linux自动运行u盘上的脚本,脚本实现U盘自动挂载(linux)
2023-02-05
Linux自学笔记——openssh
2023-02-05