0
genommen

Android Dokumentation Gefolgt Code zu schreiben, für die Einführung nativen Kamera über Absicht:
http://developer.android.com/training/camera/photobasics.htmlAndroid india Kamera App Orientierung Ausgabe für selfie

Problem: Ich bin mit Andorid india Kamera-App für Bilder von meine app unter und Starten von via Intent wie oben erwähnt Link (MediaStore.ACTION_IMAGE_CAPTURE) und Kamera wird erfolgreich gestartet. Wenn ich auf Kamerataste der Native App klicke, um Bilder zu machen, wird die Vorschau gespiegelt während selfie (linkes Bild erscheint rechts), die selfie Benutzer würde hassen als Bild Vorschau ist nicht, was er geklickt hat.
Zweitens - sobald ein Bild angeklickt wird, zeigt es eine Bildvorschau und wartet auf Benutzereingaben für die Annahme oder Zurückweisung des Bildes.
Sobald das Bild akzeptiert wurde, empfängt die Funktion OnStartActivityResult (wie in obiger Link erwähnt) den Anruf und speichert das Bild in der Galerie. Merkwürdiges Ding hier ist das: Bild wird um 180 Grad invertiert und dann gespeichert, was sehr seltsames Verhalten ist.
Schließlich zwei Probleme hier: Image Preview Mirroing Problem, bevor Benutzer genehmigt und beim Speichern von Bild invertieren Problem (180 Grad umgekehrt).

Gerät: Samsung A6 Rand
Android: 5.1
Kamera Im Manifest-Datei: Android.hardware.camera2 als Kamera veraltet Bitte raten, wie kann ich über zwei Probleme zu beheben.

Auch- Ich habe noch einen Zweifel: Soll ich Android native Kamera-App verwenden oder den Code mit Camera Framework schreiben und benutzerdefinierte Kamera starten? Meine Anforderung, nur auf Bilder und Vorschau zu klicken und sie mit korrekter Ausrichtung zu speichern. Nachdem ich viel gesucht habe, bin ich zweifelhaft - Kann die native Kamera-App diese Probleme beheben? aber Ihre fachkundige Beratung kann dabei helfen.

Jede schnelle Unterstützung und Anleitung dazu wird sehr geschätzt. Danke im Voraus ! Hier ist der Code:

public void triggerCamera() { 
    Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
    File imagePath = AppPhotoHelper.getOutputMediaFile(); 

    // Continue only if the File was successfully created 
    if (imagePath != null) { 
     takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, 
       Uri.fromFile(imagePath)); 
     takePictureIntent.putExtra(MediaStore.EXTRA_SCREEN_ORIENTATION, ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); 
     this.setImagePath(imagePath); 
     this.startActivityForResult(takePictureIntent, CAMERA_PIC_REQUEST); 
    } 
} 

onActivityResult Funktion:

protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    if (requestCode == CAMERA_PIC_REQUEST) { 
     if (resultCode == RESULT_OK) { 
      //AppPhotoHelper is my class to show image in gallery 
      AppPhotoHelper.displayInGallery(this.getImagePath(), this); 
      //Image captured and stored in gallery ... camera invoked for next shot after doing some business processing 
      this.triggerCamera(); 
     } 
     else if (resultCode == RESULT_CANCELED) { 
      return; 
     } 
     else { 
      return; 
     } 
    } 

} 

Antwort

0

Wie in meinem post erwähnt, die native Kamera-App unterscheidet sich von Gerät zu Gerät. Hast du deinen Code mit einem anderen Gerät oder Emulator getestet? Ich veröffentlichte eine library on github, die viele Probleme löst, einschließlich der Bildausrichtung über eine Vielzahl von Geräten. Probieren Sie es aus, führen Sie den Beispielcode auf Ihrem Gerät aus und überprüfen Sie, ob es für Ihren Anwendungsfall richtig funktioniert.