10
votes

Android - Prenez l'image sans aperçu

J'essaie de prendre une photo sans aperçu, immédiatement lorsque mon application commence à exécuter et après cela pour enregistrer l'image dans le nouveau dossier - "Pictures123", dans le dossier racine. Est-ce que quelqu'un pourrait me dire ce qui ne va pas dans mon code? XXX PRE>

Autorisations: P>

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.camera" />


3 Réponses :


0
votes

Je pense que le principal problème est que vous appelez immédiatement après StartPreview qui prend du temps pour terminer sa configuration. Ajout d'un retard entre ces deux pourrait résoudre temporairement ce problème, Regarder ici pour Plus de détails .


1 commentaires

Avec caméra.sepreviewDisplay (null) , aucun délai ne vous aidera ( Eh bien, il existe des appareils qui permettent de telles ricks ). Notez également que retarder ne peut pas être un simple Sleep () appel ici et là. L'initialisation du flux d'appareil photo implique certains rappels et nécessite une réponse rapide à celles-ci. Par exemple. On ne peut pas utiliser la superficie avant que le superficiel a appelé surfacecreated () sur son auditeur.



0
votes

Il est impossible de prendre une photo sans aperçu. Vous devriez lire la référence en ligne Android: http://developer.android.com /reference/andrroid/hardware/camera.html#takepicture .

note: Cette méthode n'est valide que lorsque l'aperçu est actif (après StartPreview ()). L'aperçu sera arrêté après la prise de l'image; Les appelants doivent appeler StartPreview () à nouveau s'ils veulent recommencer l'aperçu ou prendre plus de photos. Cela ne doit pas être appelé entre le début () et l'arrêt ().


2 commentaires

Êtes-vous sûr qu'il est impossible de prendre une photo sans aperçu? Je connais une application qui fait cela - "gottana!". Cette application prend une photo si quelqu'un a essayé de déverrouiller l'appareil avec un mot de passe incorrect.


Je pense que cela vient de cacher l'aperçu. Par exemple, vous pouvez ajouter une vue personnalisée via la supervision.



10
votes

Vous ne pouvez pas prendre une photo sans aperçu, mais vous n'avez pas à afficher l'aperçu à l'écran. Vous pouvez diriger la sortie sur une surfacetexture à la place (API 11 +).

voir Cette réponse Pour plus de détails.


0 commentaires