2017-04-26 8 views
1

Ich habe diesen Code, um Bild in imagebutton nach Auswahl durch den Benutzer zu zeigen.android - Foto erscheint in imagebutton gedreht

Mein Problem ist, dass wenn ein großes Bild ausgewählt wird, wird es um 90 Grad nach links gedreht angezeigt. Ich habe einige Lösungen hier in stackoverflow.com gefunden, aber ich kann keine davon verwenden, da sie "Image" verwenden und ich nur "Uri" verwende.

EDIT: mit Codes wie diese:

public static void rotateImageIfRequired(Uri selectedImage) throws IOException { 

     ExifInterface ei = new ExifInterface(selectedImage.getPath()); 
     int orientation = ei.getAttributeInt(ExifInterface.TAG_ORIENTATION, ExifInterface.ORIENTATION_NORMAL); 

     switch (orientation) { 
      case ExifInterface.ORIENTATION_ROTATE_90: 
       Log.e(TAG,"ROTATE = 90"); 
      case ExifInterface.ORIENTATION_ROTATE_180: 
       Log.e(TAG,"ROTATE = 180"); 
       //return rotateImage(img, 180); 
      case ExifInterface.ORIENTATION_ROTATE_270: 
       Log.e(TAG,"ROTATE = 270"); 
       //return rotateImage(img, 270); 
      default: 
       Log.e(TAG,"ROTATE = 0"); 
       //return img; 
     } 
    } 

"DREHEN = 0" zurückgegeben. Einige Bilder wurden vor ein paar Tagen aufgenommen. Alle von ihnen sind groß. In kleinen Bildern findet keine Rotation statt.

+2

sein nichts mit dem ImageButton zu tun haben. Ich nehme an, Sie bekommen das Bild von der Kamera? Sie müssen es entweder in der von Ihnen gewünschten Ausrichtung anfordern, oder es manuell selbst drehen und erneut speichern – Blundell

+0

Das weiß ich. Ich weiß nicht wie ich es machen soll. –

Antwort

1

Haben Sie Picasso Library verwendet? (http://square.github.io/picasso/). Sie können ihre Beispiele auf GitHub verfolgen, wenn Sie mehr darüber erfahren möchten.

Für ein Bild von Gerät laden Sie verwenden können: Die Datei f = new File ("path-to-image/image.png")

oder Datei f = new File (uri)

Picasso.with (getActivity()). Load (f) .into (Bildansicht);

oder Picasso.with (getActivity()). Load (uri) .into (imageView);

Picasso bietet auch IMAGE TRANSMORMATIONS:

Picasso.with (Kontext) .load (url) .resize (50, 50) .centerCrop() .into (Imageview)

+0

Vielen Dank !! Das funktioniert ganz gut für mich! –

+0

Ich bin froh, dass ich helfen konnte! Glückliche Kodierung! :) –