2015-01-27 12 views
8

sto cercando un esempio di messa a fuoco manuale in camera2 in Android. Ho cercato di ottenere la minima distanza di messa a fuoco e le lunghezze focali disponibili mostrate di seguito, ma non è stato di aiuto. Come controllare la distanza di messa a fuoco?Messa a fuoco manuale in camera2, android

float minimumLens = characteristics.get(CameraCharacteristics.LENS_INFO_MINIMUM_FOCUS_DISTANCE); 

float[] lensDistances = characteristics.get(CameraCharacteristics.LENS_INFO_AVAILABLE_FOCAL_LENGTHS);  

Devo controllarlo con la barra di ricerca. Grazie in anticipo.

risposta

5
switch (seekBar.getId()) { 
      case R.id.sb_focus: 
       float minimumLens = mCameraCharacteristics.get(CameraCharacteristics.LENS_INFO_MINIMUM_FOCUS_DISTANCE); 
       float num = (((float) i) * minimumLens/100); 
       mPreviewBuilder.set(CaptureRequest.LENS_FOCUS_DISTANCE, num); 
       int showNum = (int) num; 
       mSeekBarTextView.setText("focus:" + showNum); 
       break;} 

fare attenzione, CONTROL_AF_MODE deve essere OFF. Codice
https://github.com/pinguo-yuyidong/Camera2/blob/master/app/src/main/java/us/yydcdut/androidltest/ui/DisplayFragment.java
in linea 1109

+0

che dire di messa a fuoco manuale per una singola area? Come lo posso fare? – user0770

+0

@yydcdut: Purtroppo questa soluzione non funziona su Samsung Galaxy S7. Mentre non l'ho provato su nessun altro telefono Samsung, ho il forte sospetto che la maggior parte dei telefoni Samsung soffrano del problema. – unshul

+0

Solo per i futuri lettori, credo in questo esempio di codice che desideri: mPreviewBuilder.set (CaptureRequest.LENS_FOCUS_DISTANCE, minimumLens); Non è chiaro cosa sia esattamente num, ma è in qualche modo correlato alla percentuale della distanza focale, probabilmente per la barra di ricerca. – jranalli

Problemi correlati