Ich entwickle eine Android-Anwendung mit einer Kamera-Funktionalitätsfunktion.Android-Kamera: Fixed Objektiv Fokus
Zuallererst lese ich eine Menge Zeug über SO, XDA und so weiter, dann leite mich bitte nicht zu anderen nutzlosen Beiträgen um.
Ich versuche, so etwas wie ein „Fixfokus-Modus“ zu implementieren, so dass:
- ich meine Bewerbung mit
FOCUS_MODE_AUTO
(oder etwas anderes) beginnen; - ein Objekt in beliebiger Entfernung in den Fokus bringen;
- den aktuellen Fokus beheben;
- verschieben Sie die Kamera auf ein anderes Objekt in einer anderen Entfernung, die nicht fokussiert ist.
I versucht, verschiedene Lösungen, d.h .:
mCamera.cancelAutoFocus()
imAutoFocusCallback
die Einstellung des Fokus zu verhindern;- Setzen Sie eine
FocusArea
:new Camera.Area(new Rect(-50, -50, 50, 50), 1000)
, um den Fokus auf den aktuellen Bereich zu fixieren.
Ich bin auf API 20 und ich arbeite an einem Samsung Galaxy S5. Auf diesem Gerät sind die unterstützten Fokusmodi: - auto - unendlich - Makro - Dauer Video - Dauer Bild
Der Vorschlag, dass ich häufiger gefunden ist Android neu kompilieren ...
Sie möchten tippen, um zu fokussieren? und können Sie einen Code der Surfaceview-Klasse veröffentlichen? – sandeepmaaram
Hallo. Ich habe über der Vorschau eine Schaltfläche hinzugefügt, die im Idealfall vom Autofokusmodus in den Modus "Fixed Focus" und umgekehrt wechselt. Es gibt nichts Interessantes in meinem Code, einfach weiß ich nicht, wie es geht oder ob es überhaupt möglich ist. – Zeb
Wie führst du den Fokus aus? Der "AUTO" -Modus bedeutet nicht, dass die Kamera kontinuierlich fokussiert - nur wenn Sie den Befehl autoFocus aufrufen, wird der Fokus automatisch eingestellt, ohne dass angezeigt wird, welches Ergebnis nicht wie "Makro" oder "Unendlich" erwartet wird. http://developer.android.com/reference/android/hardware/Camera.html#autoFocus(android.hardware.Camera.AutoFocusCallback) Also, wenn Sie keine Schleife haben, die den AutoFocus aufruft (wie viele Beispiele tun oder rufen Sie es erneut im Callback auf) Ihr Fokus sollte bleiben, nachdem er einmal ausgeführt wurde. – Raanan