Android camera摄像头对焦,zoom的通知事件回调,告诉java应用层已经对焦完成
2012-11-22 15:34
399 查看
在vendor/sec/sec_proprietary/smdkc110/libcamera/SecCameraHWInterface.cpp中,当对硬件设置完毕后,通知packages/apps/Camera/src/com/android/camera/Camera.java,zoom已经完成。
应用层或者硬件层设置成功,可以对应用程序进行成功后的相关设置。例如把zoomin按钮显示出来。
status_t CameraHardwareSec::sendCommand(int32_t command, int32_t arg1, int32_t arg2) { if( command == ZOOM_COMMAND_ID ) { if( arg1 == mZoomLevel ) { return NO_ERROR; } LOGE("startZoom (%s),arg1:%ld,mZoomLevel:%ld", __FUNCTION__,arg1,mZoomLevel); //mZoomLevel = arg1; //mSecCamera->startZoom(mZoomLevel); if( arg1>mZoomLevel ) { LOGE("zoomIn (%s)", __FUNCTION__); mZoomLevel = arg1; mSecCamera->zoomIn(mZoomLevel); } else if( arg1<mZoomLevel ) { LOGE("zoomOut (%s)", __FUNCTION__); mZoomLevel = arg1; mSecCamera->zoomOut(mZoomLevel); } //add by hui if (mMsgEnabled & CAMERA_MSG_ZOOM) mNotifyCb(CAMERA_MSG_ZOOM, true, 1, mCallbackCookie); } return NO_ERROR; }
应用层或者硬件层设置成功,可以对应用程序进行成功后的相关设置。例如把zoomin按钮显示出来。
private final class ZoomCallback implements android.hardware.Camera.ZoomCallback { public void onZoomUpdate(int zoomValue, boolean stopped, android.hardware.Camera camera) { Log.v(TAG, "ZoomCallback: zoom value=" + zoomValue + ". stopped=" + stopped); mZoomValue = zoomValue; // Keep mParameters up to date. We do not getParameter again in // takePicture. If we do not do this, wrong zoom value will be set. mParameters.setZoom(zoomValue); // We only care if the zoom is stopped. mZooming is set to true when // we start smooth zoom. if (stopped) mZooming = false; updateZoomButtonsEnabled(); } }
相关文章推荐
- android 摄像头对焦,zoom的通知事件回调,告诉java应用层已经对焦完成
- android DownloadManager广播事件:下载完成、通知栏点击事件
- Java CountDownLatch完成异步回调实例详解
- Android程序 类QQ通知常驻在Notification栏 点击Notification正确回调到之前已经放置在后台的Task中的对应Activity,而不是创建它的一个新实例
- 很幽默的讲解六种Socket IO模型 Delphi版本(自己Select查看,WM_SOCKET消息通知,WSAEventSelect自动收取,Overlapped I/O 事件通知模型,Overlapped I/O 完成例程模型,IOCP模型机器人)
- Handler通信方式,不需要将数据回调回主线程,只需要告诉用户加载完成
- 如何写监听回调(事件完成监听、点击响应监听 )
- 保存图片/视频到相册 保存完成后通知事件
- 多种SOKECT通讯模型的理解(select,WSAAsyncSelect,WSAEventSelect,Overlapped I/O 事件通知,Overlapped I/O 完成例程,IOCP)
- Android程序 类QQ通知常驻在Notification栏 点击Notification正确回调到之前已经放置在后台的Task中的对应Activity,而不是创建它的一个新实例
- Android进阶——多线程间的通信之调用系统标准摄像头自动对焦并自动完成隐蔽拍照
- Java回调机制(以Android事件监听器为例)
- Android程序 类QQ通知常驻在Notification栏 点击Notification正确回调到之前已经放置在后台的Task中的对应Activity,而不是创建它的一个新实例
- Java借助CountDownLatch完成异步回调
- 关于JAVA匿名内部类,回调,事件模式的一点讨论
- Java 事件触发接口回调方法
- Android程序 类QQ通知常驻在Notification栏 点击Notification正确回调到之前已经放置在后台的Task中的对应Activity,而不是创建它的一个新实例
- 在请求完成后回调delegate的方法。然而回调时经常遇到这种情况:delegate已经被释放
- 关于JAVA匿名内部类,回调,事件模式的一点讨论
- 使用javascript和java模仿实现事件回调机制