Android中使用Camera类编写手机拍照App的实例教程

Android中使用Camera类编写手机拍照App的实例教程

2023年7月7日发(作者:)

Android中使⽤Camera类编写⼿机拍照App的实例教程Camera是Android摄像头硬件的相机类,位于硬件包""下。它主要⽤于摄像头捕获图⽚、启动/停⽌预览图⽚、拍照、获取视频帧等,它是设备本地的服务,负责管理设备上的摄像头硬件。Camera既然⽤于管理设备上的摄像头硬件,那么它也为开发⼈员提供了相应的⽅法,并且这些⽅法⼤部分都是native的,⽤C++在底层实现,下⾯简单介绍⼀下Camera的⼀些⽅法:static Camera open():打开Camera,返回⼀个Camera实例。static Camera open(int cameraId):根据cameraId打开⼀个Camera,返回⼀个Camera实例。final void release():释放掉Camera的资源。static int getNumberOfCameras():获取当前设备⽀持的Camera硬件个数。ters getParameters():获取Camera的各项参数设置类。void setParameters(ters params):通过params把Camera的各项参数写⼊到Camera中。final void setDisplayOrientation(int degrees):摄像预览的旋转度。final void setPreviewDisplay(SurfaceHolder holder):设置Camera预览的SurfaceHolder。final void starPreview():开始Camera的预览。final void stopPreview():停⽌Camera的预览final void autoFocus(cusCallback cb):⾃动对焦。final takePicture(rCallback shutter,eCallback raw,eCallback jpeg):拍照。final void lock():锁定Camera硬件,使其他应⽤⽆法访问。final void unlock():解锁Camera硬件,使其他应⽤可以访问。上⾯已经介绍了Camera的常⽤⽅法,下⾯根据这些⽅法详细讲解Android下使⽤Camera开发拍照应⽤最基本的过程:使⽤open()⽅法获取⼀个Camera对象,鉴于Android设备可能配置了多个摄像头,open()⽅法可以通过摄像头Id开启指定的摄像头。为Camera对象设置预览类,它是⼀个SurfaceHolder对象,通过setPreviewDisplay(SurfaceHolder)⽅法设置。调⽤startPreview()⽅法开始Camera对象的预览。调⽤takePicture()⽅法进⾏拍照,其中可以通过eCallback()回调获得拍摄的Image数据。当拍摄完成后,需要调⽤stopPreview()⽅法停⽌预览,并使⽤release()释放Camera占⽤的资源。以上介绍的步骤都是最基本的过程,是必不可少的。Camera没有提供公开的构造函数,只能通过open()⽅法获取,并且必须设置⼀个预览类SurfaceHolder,如果不设置的话,将⽆法使⽤Camera。在使⽤完成Camera之后,必须使⽤release()释放Camera资源。实例:使⽤Camera控制拍照的⼏个步骤: 1、调⽤Camera的open()打开相机 2、调⽤Camera的getParameters()获取拍照参数。该⽅法返回⼀个ters对象 3、调⽤ters对象⽅法设置拍照的参数 4、调⽤review()⽅法开始预览取景,在预览取景之前需要调⽤Camera的setPreviewDisplay(SurfaceHolder holder)⽅法设置使⽤哪个SurfaceView来显⽰取景图⽚。 5、调⽤Camera的takePicture()⽅法进⾏拍照 6、结束程序时,调⽤Camera的stopPreview()结束取景预览,并调⽤release()⽅法释放资源代码:

android:id="@+id/sView" android:layout_width="match_parent" android:layout_height="wrap_content"/>

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信