在 Android 中使用相机而不启动相机应用

Using camera in Android without launching camera app

我想要一个 Activity,它基本上可以在不打开相机应用程序的情况下显示相机的视图。

我想知道是否需要为此在更低级别控制驱动程序?

理想情况下,我希望相机视图用我自己的图像覆盖屏幕(如双筒望远镜)。正如您可能猜到的那样,这是我正在制作的游戏。

网上的教程好像都在讲打开默认的相机应用。

这是我在网上找到的一张图片,显示了我的要求:

如果有人知道任何教程、链接、书籍、论坛以及任何专门处理此问题的内容,那将非常有帮助。

非常感谢。

您可以在您的应用程序中直接操作相机,无需任何硬件驱动程序。

为您的应用程序创建自定义相机界面的一般步骤如下:

  • 检测并访问摄像头 - 创建代码以检查是否存在摄像头并请求访问权限。
  • 创建预览 Class - 创建扩展 SurfaceView 并实现 SurfaceHolder 接口的相机预览 class。 class 预览来自相机的实时图像。
  • 构建预览布局 - 获得相机预览后 class,创建包含预览和所需用户界面控件的视图布局。
  • 设置捕获侦听器 - 连接界面控件的侦听器以响应用户操作(例如按下按钮)开始图像或视频捕获。
  • 捕获和保存文件 - 设置用于捕获图片或视频并保存输出的代码。
  • 释放相机 - 使用相机后,您的应用程序必须正确释放它以供其他应用程序使用。

查看 Android 关于如何编写相机应用程序的指南:http://developer.android.com/guide/topics/media/camera.html

注意:较新的应用程序应使用 android.hardware.camera2 API