2012-06-28 11 views
35

ho questo ImageView nel mio layout:Ruota ImageView fonte da file di layout xml

<ImageView android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:contentDescription="@string/image_divider" 
     android:paddingBottom="8dp" 
     android:paddingTop="4dp" 
     android:scaleType="fitXY" 
     android:src="@android:drawable/divider_horizontal_textfield" /> 

E 'una divisione orizzontale. Voglio ruotarlo di 90 gradi, quindi ho un divisore verticale.
Esiste un modo per farlo direttamente dal layout e non dalla classe Activity?

+0

si può semplicemente impostare l'altezza a 'layout_height = "fill_parent"' e allora sarà estendeva in tutto il layout di – thepoosh

+0

Gentilmente accettano/upvote la risposta, se hai la soluzione :) –

+0

@thepoosh: l'immagine sorgente non è un quadrato. È un rettangolo largo e, facendo quello che dici, si tradurrà in un sottile rettangolo verticale. – mehrmoudi

risposta

104

È possibile utilizzare Disponibile Dal Livello API 11

android:rotation="90" 

codice finale per mettere,

<ImageView android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:rotation="90" 
     android:contentDescription="@string/image_divider" 
     android:paddingBottom="8dp" 
     android:paddingTop="4dp" 
     android:scaleType="fitXY" 
     android:src="@android:drawable/divider_horizontal_textfield" /> 
+1

Grazie, ma non esiste un attributo simile per ImageView, almeno nel mio! http://s15.postimage.org/gpit1dvrd/Untitled.png – mehrmoudi

+0

@Mehran Visitare http://developer.android.com/reference/android/view/View.html#attr_android:rotation Per ulteriori informazioni –

+1

Non sono d'accordo: Android : l'attributo roation è disponibile solo dall'API 11: http://developer.android.com/reference/android/R.attr.html#rotation –

1

Potete farlo nel codice con la creazione di un nuovo oggetto bitmap. Check this out: http://android-er.blogspot.fr/2010/07/rotate-bitmap-image-using-matrix.html E specificamente questa funzione

Matrix matrix = new Matrix(); 
matrix.postScale(curScale, curScale); 
matrix.postRotate(curRotate); 

Bitmap resizedBitmap = Bitmap.createBitmap(bitmap, 0, 0, bmpWidth, bmpHeight, matrix, true); 
myImageView.setImageBitmap(resizedBitmap); 
Problemi correlati