web-dev-qa-db-fra.com

Faire pivoter la source ImageView à partir du fichier xml de mise en page

J'ai cette ImageView dans ma mise en page:

<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" />

C'est un diviseur horizontal. Je veux le faire pivoter de 90 degrés, j'ai donc un diviseur vertical.
Y a-t-il un moyen possible de le faire ici à partir de la mise en page et non de la classe d'activité?

41
mehrmoudi

Vous pouvez utiliser Available Since API Level 11

Android:rotation="90"

Code final à mettre,

<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" />
140
Rinkal Bhanderi

Ajoutez "id" à ImageView (sinon générez auto):

 Android:id="@+id/imageView"

et utilisez le "id" (exemple kotlin):

val imageView = findViewById<ImageView>(R.id.imageView)
imageView.setRotation(90f) // rotate 90 degree
1
Levente Tiszberger

Vous pouvez le faire dans votre code en créant un nouvel objet bitmap. Vérifiez ceci: http://Android-er.blogspot.fr/2010/07/rotate-bitmap-image-using-matrix.html Et spécifiquement cette fonction

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);
1
Stephane Mathis