Sto sviluppando un'applicazione Android con funzionalità di funzionalità correlate alla fotocamera.Fotocamera Android: messa a fuoco dell'obiettivo fissa
Prima di tutto, ho letto un sacco di cose su SO, XDA e così via, quindi per favore non reindirizzarmi ad altri post inutili.
Sto cercando di implementare qualcosa di simile a una "modalità di messa a fuoco fisso", in modo che:
- inizio la mia applicazione con
FOCUS_MODE_AUTO
(o altro); - mette a fuoco un oggetto a una distanza arbitraria;
- correggere il focus corrente;
- spostare la fotocamera su un altro oggetto a una distanza diversa sfuocata.
Ho provato diverse soluzioni, cioè .:
mCamera.cancelAutoFocus()
nelAutoFocusCallback
per impedire la regolazione della messa a fuoco;- impostare un
FocusArea
:new Camera.Area(new Rect(-50, -50, 50, 50), 1000)
per correggere lo stato attivo nell'area corrente.
Mi sto occupando dell'API 20 e sto lavorando a un Samsung Galaxy S5. Su questo dispositivo, le modalità di messa a fuoco supportati sono: - auto - infinito - macro - continua-video - continua-picture
Il suggerimento che ho trovato più frequentemente è quello di ricompilare Android ...
Vuoi toccare per mettere a fuoco? e puoi pubblicare qualche codice della classe Surfaceview? – sandeepmaaram
Ciao. Ho aggiunto un pulsante sopra l'anteprima che, idealmente, deve passare dalla modalità di messa a fuoco automatica alla modalità "a fuoco fisso" e viceversa. Non c'è nulla di interessante nel mio codice, semplicemente non so come farlo o anche se è possibile. – Zeb
Come stai mettendo a fuoco? La modalità "AUTO" non significa che la fotocamera mette a fuoco continuamente - solo che quando si chiama il comando autoFocus la messa a fuoco viene eseguita automaticamente senza alcuna indicazione sul risultato che ci si aspetta non come "Macro" o "Infinito". http://developer.android.com/reference/android/hardware/Camera.html#autoFocus(android.hardware.Camera.AutoFocusCallback) Quindi, se non si dispone di un loop che richiama la funzione autoFocus (come fanno molti esempi o richiamalo di nuovo nel callback) la messa a fuoco dovrebbe rimanere dopo che viene eseguita una volta. – Raanan