通过触摸Android设置手动对焦

我将通过打开相机来设置我的Android应用程序,并通过触摸相机点来启用手动对焦。 相机可以重新调整到指向屏幕的位置。 请您告诉我方法,或者我应该从哪一个组件开始修改?

以下是我的代码:

public void takePhoto(File photoFile, String workerName, int width, int height, int quality) { if (getAutoFocusStatus()){ camera.autoFocus(new AutoFocusCallback() { @Override public void onAutoFocus(boolean success, Camera camera) { camera.takePicture(shutterCallback, rawCallback, jpegCallback); } }); }else{ camera.takePicture(shutterCallback, rawCallback, jpegCallback); } this.photoFile = photoFile; this.workerName = workerName; this.imageOutputWidth = width; this.imageOutputHeight = height; } public void takePhoto(File photoFile, int width, int height, int quality) { takePhoto(photoFile, null, width, height, quality); } 

Solutions Collecting From Web of "通过触摸Android设置手动对焦"

虽然这个答案并没有说明如何把注意力集中在一个单一的领域,但是在展示如何把相机聚焦到一开始是绝对有用的。

这是我所做的。 这适用于我的设备(HTC的Droid DNA),内置于Android Studio

OnSurfaceChanged()OnSurfaceCreated() ,我有以下代码:( mCamera是我的私人Camera对象)

  mCamera.stopPreview(); Camera.Parameters p = mCamera.getParameters(); p.setFocusMode(Camera.Parameters.FOCUS_MODE_AUTO); mCamera.setParameters(p); mCamera.setPreviewDisplay(surfaceHolder); mCamera.startPreview(); mCamera.autoFocus(null); 

在构造函数中,你必须放置

  setFocusable(true); setFocusableInTouchMode(true); 

这将允许您接收焦点事件。 至于抓住他们…

  public boolean onTouchEvent(MotionEvent event){ if(event.getAction() == MotionEvent.ACTION_DOWN){ Log.d("down", "focusing now"); mCamera.autoFocus(null); } return true; } 

你有没有尝试过使用setFocusAreas()来设置用户触摸的focusarea?

这里的关键是调用camera.autoFocus(autoFocusCallBack),并在我们调用方法autofocusCallback.onAutoFocus(布尔成功,相机相机)被称为 – 调用camera.takePicture(Camera.ShutterCallback快门,Camera.PictureCallback生,Camera.PictureCallback jpeg )

查看更多: http : //achorniy.wordpress.com/2009/12/29/how-to-use-autofocus-in-android/

要么

在预览表面之前,您可以使用自动对焦设置来自动设置焦距,然后启动预览,然后自动对焦于显示的内容。

 public void surfaceChanged(SurfaceHolder holder, int format, int w, int h) { // Set camera properties first Camera.Parameters parameters = camera.getParameters(); parameters.setFocusMode(Camera.Parameters.FOCUS_MODE_AUTO); camera.setParameters(parameters); camera.startPreview(); camera.autoFocus(null); } 

学分: 自动对焦在类的安卓相机