2010-11-18 1 views
0

Das Format meiner App ist alles im Hochformat. Seltsamerweise, wenn ich ein Foto im Hochformat aufnehme, wird es auf dem ImageView seitwärts angezeigt (wie es im Querformat gerastert wurde) ... die einzige Möglichkeit, es richtig herum zu zeigen, ist, wenn ich das Bild im Querformat mache.Die Kamera wird immer mit der rechten Seite nach oben fotografiert?

Wer kennt eine einfache Problemumgehung, die die Fotoseite unabhängig von der Ausrichtung der Kamera nach oben zeigt? Ich kann meinen Code leicht zur Verfügung stellen, wenn jemand einen Blick werfen muss.

Danke!

Antwort

3

Hier ist der Code, den ich beiActivityResult() in meiner Aktivität verwendet habe. Die zurückgegebene Absicht war, ein Bild vom Typ image/* auszuwählen. Funktioniert gut für mich!

Uri imageUri = intent.getData(); 
String[] orientationColumn = {MediaStore.Images.Media.ORIENTATION}; 
Cursor cur = managedQuery(imageUri, orientationColumn, null, null, null); 
int orientation = -1; 
if (cur != null && cur.moveToFirst()) { 
    orientation = cur.getInt(cur.getColumnIndex(orientationColumn[0])); 
} 
Matrix matrix = new Matrix(); 
matrix.postRotate(orientation); 
+0

Clever! Ich habe eine Lösung, die EXIF-Tags untersucht ... das ist viel sauberer. (Obwohl BitmapFactory.decodeBitmap() die JPEG-Ausrichtung nicht respektiert, ist dies sicherlich das eigentliche Problem). –

+0

Danke Mann. Ich habe versucht, Exif-Tags zu verwenden, aber es war immer 0, wenn ich das Bild-Uri, das von der Absicht zurückgegeben wurde, prüfte. – dbaugh

Verwandte Themen