Android : zu erkennen, Wie die Bild-Ausrichtung (hochformat oder Querformat) ausgewählt aus der Galerie während der Einstellung auf eine Bildansicht?
Ich bin Einstellung ein Bild auf die Bildansicht ausgewählt aus der Galerie(Fotoalbum). Wenn das aufgenommene Bild hat Querformat, zeigt es perfekt, aber wenn das Bild im hochformat ist(ich.e das Bild angeklickt wurde, im portrait-Modus) angezeigt wird das Bild mit einem 90-Grad-Drehung. Jetzt versuche ich, um die Orientierung kurz vor Einstellung auf Bildansicht, aber alle Bilder geben, die gleiche Ausrichtung und die gleiche Breite und Höhe. Hier ist mein code :
Uri selectedImage = intent.getData();
if (selectedImage != null) {
Bitmap bitmap = MediaStore.Images.Media.getBitmap(this.getContentResolver(), selectedImage);
int str = new ExifInterface(selectedImage.getPath()).getAttributeInt("Orientation", 1000);
Toast.makeText(this, "value:" + str, Toast.LENGTH_LONG).show();
Toast.makeText(this, "width:" + bitmap.getWidth() + "height:" + bitmap.getHeight(), Toast.LENGTH_LONG).show();
kann mir jemand helfen ich habe das gleiche Problem..stackoverflow.com/questions/28379130/...
InformationsquelleAutor sarabhai05 | 2012-10-04
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden
ExifInterface
für Bild drehen. Verwenden Sie diese Methode für korrekte Wert zu sein, drehen-aufgenommene Bild von der Kamera.Und fügen Sie diesen code in Tätigkeit Ergebnis Methode und erhalten Sie den Wert auf " Bild drehen...
Hoffe, das hilft..
sorry, ich war einen Fehler zu machen. Ihr Ansatz ist, für mich zu arbeiten. Auch die Daten.getData() gibt die Uri nicht als String, pls haben einen Blick in ur-code.
Warum muss ich call
context.getContentResolver().notifyChange(imageUri, null)
?Mit dem obigen code, wenn Sie nicht in der Lage zu drehen Bild im Uhrzeigersinn mit Bezug auf den Drehwinkel bitte fügen Sie eine Zeile, während die Einstellung, Bild für Bild anzeigen
imageView.setRotation(angle);
diese Zeile hat mir geholfen .Danke, aber kann ich denselben code für die Erfassung von video?
InformationsquelleAutor Deepak
Dies ist auch für mich arbeiten:
welchen Teil des Codes u wollen ?
InformationsquelleAutor sarabhai05
Ja, es könnte ein Fall. Aber wenn das Bild nicht die Orientierung Informationen im header dann können wir auf diese Weise.
ich werde verrückt versuchen, diese zu workyour Weg ist gut genug für mich galaxy s, was?
InformationsquelleAutor ultimate
Hier ist eine großartige Lösung stieß ich auf: >https://stackoverflow.com/a/34241250/8033090
One-line-Lösung:
oder
Diese wird automatisch erkennen rotation und Bild in der richtigen Orientierung
Picasso ist eine sehr mächtige Bibliothek für die Bearbeitung von Bilder in Ihrer app beinhaltet: Komplexe Bild-Transformationen mit minimalem memory die Nutzung zu. Es dauert eine Sekunde, um den laden, sondern ich einfach nur etwas text hinter dem Bild Sicht, die sagt "Loading image" und wenn das Bild geladen es umfasst den text.
sind u Lösung gefunden ? ich Stapel mit diese auch. Problem mit galaxy s8
Hey @Peter, ich denke, ich Lösung gefunden. Sie im Grunde brauchen, um dies zu implementieren, android-developers.googleblog.com/2016/12/.... Samsung-Handys geben " val rotationConstant = ExifInterface.ORIENTATION_*' als Wert, wie 1, 3, 6 usw., während andere Handys (Xiaomi, in meinem Fall) geben 'val rotationConstant = ExifInterface.ORIENTATION_UNDEFINED', die gleich 0 ist. Dann, wissen die rotation konstant ist, können Sie drehen Sie Ihr Bild, wie Sie oder drehen Sie es auf 0 bei nicht-Samsung-Handys
InformationsquelleAutor Andrew Moreau
Andere Lösung ist die Verwendung der ExifInterface von der Bibliothek unterstützt:
ExifInterface von der Unterstützung der Bibliothek
InformationsquelleAutor lucasddaniel
Diese Arbeit für mich :
Es können sich viel besser mit enum oder int als Ergebnis 🙂
InformationsquelleAutor ilmetu