我正在尝试使用cameraApi2在Android上实现基于触摸的焦点.它有点工作,但它似乎并不总是适合我.我的实现如下:
首先,我使用以下步骤创建Camera PreviewSession:
mPreviewRequestBuilder = mCameraDevice.createCaptureRequest(CameraDevice.TEMPLATE_PREVIEW);
mPreviewRequestBuilder.set(CaptureRequest.CONTROL_MODE, CameraMetadata.CONTROL_MODE_AUTO);
mPreviewRequestBuilder.set(CaptureRequest.CONTROL_AE_MODE, CameraMetadata.CONTROL_AE_MODE_ON);
mPreviewRequestBuilder.set(CaptureRequest.CONTROL_AWB_MODE, CameraMetadata.CONTROL_AWB_MODE_AUTO);
Run Code Online (Sandbox Code Playgroud)
然后我调用createCaptureSession并在其中调用
mCaptureSession.setRepeatingRequest( mPreviewRequestBuilder.build(), mCaptureCallback, mBackgroundHandler);
Run Code Online (Sandbox Code Playgroud)
我已经实现了OnTouch Listener来捕获屏幕的触摸区域并生成AF区域
mPreviewRequestBuilder.set(CaptureRequest.CONTROL_MODE, CameraMetadata.CONTROL_MODE_AUTO);
mPreviewRequestBuilder.set(CaptureRequest.CONTROL_AF_MODE, CaptureRequest.CONTROL_AF_MODE_AUTO);
mPreviewRequestBuilder.set(CaptureRequest.CONTROL_AF_REGIONS, meteringRectangleArr);
mCaptureSession.setRepeatingRequest(mPreviewRequestBuilder.build(), mCaptureCallback, mBackgroundHandler);
Run Code Online (Sandbox Code Playgroud)
在captureCallback中,我在onCaptureCompleted中执行以下步骤
mPreviewRequestBuilder.set(CaptureRequest.CONTROL_MODE, CameraMetadata.CONTROL_MODE_AUTO);
mPreviewRequestBuilder.set(CaptureRequest.CONTROL_AF_TRIGGER, CameraMetadata.CONTROL_AF_TRIGGER_START);
mCaptureSession.capture(mPreviewRequestBuilder.build(), null, mBackgroundHandler);
mPreviewRequestBuilder.set(CaptureRequest.CONTROL_MODE, CameraMetadata.CONTROL_MODE_AUTO);
mPreviewRequestBuilder.set(CaptureRequest.CONTROL_AF_TRIGGER, CameraMetadata.CONTROL_AF_TRIGGER_IDLE);
mCaptureSession.setRepeatingRequest(mPreviewRequestBuilder.build(), null, mBackgroundHandler);
Run Code Online (Sandbox Code Playgroud)
触摸后,相机焦点有时会起作用,有时预览会完全模糊.
我的Android应用中有一个webview.从webview,我可以在手机上访问默认相机.以下代码工作正常.
webview.setWebChromeClient(new WebChromeClient(){
// Need to accept permissions to use the camera
@Override
public void onPermissionRequest(final PermissionRequest request) {
L.d("onPermissionRequest");
request.grant(request.getResources());
}
});
Run Code Online (Sandbox Code Playgroud)
我的问题是从这个webview访问外部USB摄像头.以上权限将打开webview中的默认摄像头.
我一直无法找到任何文件,甚至说这件事是可能的.是因为一些安全问题吗?
我是相对较新的Android开发人员.我使用facebook api创建了一个社交礼品应用,并且在图像和数据方面不是很重.但是,它使用Web视图显示电子礼品卡.我通过实施以下步骤改进了它的性能.
1:使用MVC模式构建活动.
2:使用图像缓存.
3:使用java的URLConnection http调用而不是apache的http客户端.
4:使用Drawable填充颜色而不是使用图像.
5:专门为移动设备制作轻型REST后端呼叫.
我想知道你们是否可以提出简单有效的方法来改善Android应用程序的性能.