6

In meiner Anwendung muss ich native Kameraaktivität implementieren, wo ich die Kamera starten und fotografieren muss.Android - Capture Foto

Im Detail, meine Anwendung enthält, One TextView (oben) zu Aktivität Name und eine Schaltfläche anzeigen (unten) und im mittleren Bereich des Bildschirms, Kamera Vorschau sollte angezeigt werden .. Wenn Benutzer auf diese Schaltfläche klicken , Snaps sollten angeklickt werden und in Imageview einer anderen Aktivität angezeigt werden.

Ich weiß, dass der folgende Ansatz verwendet wird:

Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 
intent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri); 
startActivityForResult(intent, 0); 

Aber dieser Ansatz, wenn ich verwenden, dann Ansicht meiner Textview und Taste werden nicht angezeigt.

(Pls Anmerkung: Ich bin mit Android SDK 1.5 mit HTC Hero)

pls mir helfen, durch die Suggestion eines Artikels, einer Website oder pdf.

Thanx, Paresh

Antwort

9

Verwendung Wenn Sie versuchen, die native Kamera zu verwenden, wenn die native Kamera aufgerufen wird es Ihrer Ansicht zu steuern. Wenn Sie jedoch Ihre eigene Kamera implementieren möchten, wäre ein solches Layout möglich.

Goodluck: Einige gute Beispiele sind hier zu finden!

+0

Sieht aus, dass ... Ich muss schließlich die Kamera-Anwendung in einem 2. Link Weg implementieren –

+0

Dank für die wertvolle Antwort..aber lass mich wissen, was ist die maximale Größe möglich mit IMAGE_CAPTURE Absicht zu erfassen? –

+0

Sie können sie in voller Größe erhalten, aber Sie können nicht sein. Ich stieß auf das gleiche Problem, Bilder in einem kleineren Bild zurück zu bekommen, als sie sein sollten, rate ich. Theoretisch sollten Sie in der Lage sein, die Bitmap über den Pfad zu erhalten, den Sie in der Absicht angeben. Allerdings konnte ich die größere Version über folgende Adresse abrufen: \t \t \t \t Uri pic = Uri.parse (data.toURI()); \t \t \t \t Bitmap bm = Media.getBitmap (getContentResolver(), Bild); in der onActivityResult-Methode. Hoffe das hilft. – ninjasense

4

Alle Anweisungen in der JavaDoc von android.hardware.Camera sind bei http://developer.android.com/reference/android/hardware/Camera.html:

  1. eine Instanz von Kamera aus offenen Einholen().
  2. Bestehende (Standard) Einstellungen mit getParameters() erhalten.
  3. Ändern Sie bei Bedarf das zurückgegebene Objekt Camera.Parameters und rufen Sie setParameters (Camera.Parameters) auf.
  4. Wenn gewünscht, rufen Sie setDisplayOrientation (int).
  5. Wichtig: Übergeben Sie einen vollständig initialisierten SurfaceHolder an SetPreviewDisplay (SurfaceHolder). Ohne eine Oberfläche kann die Kamera die Vorschau nicht starten.
  6. Wichtig: Rufen Sie startPreview() auf, um mit der Aktualisierung der Vorschauoberfläche zu beginnen. Die Vorschau muss gestartet werden, bevor Sie ein Bild aufnehmen können.
  7. Wenn Sie möchten, rufen Sie takePicture (Camera.ShutterCallback, Camera.PictureCallback, Camera.PictureCallback, Camera.PictureCallback) auf, um ein Foto aufzunehmen. Warten Sie, bis die Rückrufe die tatsächlichen Bilddaten bereitstellen.
  8. Nachdem ein Bild aufgenommen wurde, wird die Vorschau angehalten. Um weitere Fotos aufzunehmen, rufen Sie zunächst startPreview() erneut auf.
  9. Rufen Sie stopPreview() auf, um die Vorschauoberfläche zu aktualisieren.
  10. Wichtig: Rufen Sie die Freigabetaste() auf, um die Kamera für die Verwendung durch andere Anwendungen freizugeben. Anwendungen sollten die Kamera sofort in onPause() freigeben (und sie in onResume() erneut öffnen).

    Die SurfaceHolder ususally implementiert SurfaceView

+0

Danke für die Antwort .. Ich habe diesen Artikel bereits gelesen, aber weiß nicht, wie ich es implementieren. –