Je crée une application, avec des ressources qui peuvent être réutilisées (car les boutons sont toujours les mêmes, mais en miroir ou en rotation). Je souhaite utiliser la même ressource afin de ne pas avoir à ajouter 3 autres ressources qui sont exactement comme l'original mais pivotées. Mais je ne veux pas non plus mélanger le code avec des choses qui peuvent être déclarées dans le XML ou faire des transformations avec une matrice qui coûtera du temps de traitement.
J'ai un bouton à deux états déclaré dans un XML.
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true"
android:drawable="@drawable/and_card_details_button_down_left_onclick" /> <!-- pressed -->
<item android:drawable="@drawable/and_card_details_button_down_left" /> <!-- default -->
</selector>
et je veux réutiliser le dessinable car il sera le même mais tourné de 90 ° et 45 ° et j'assigne le bouton comme dessinable.
<Button android:id="@+id/Details_Buttons_Top_Left_Button"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/details_menu_large_button" />
Je sais que je peux le faire pivoter avec un RotateDrawable
ou avec un Matrix
mais comme je l'ai déjà expliqué, je n'aime pas cette approche.
Est-il possible d'y parvenir directement sur le XML ou quelle sera selon vous la meilleure façon de le faire? Mettre toutes les ressources mais en rotation, les faire pivoter dans le code?
--- EDIT --- La réponse de @dmaxi fonctionne très bien, voici comment la combiner avec une liste d'articles :)
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true">
<rotate
android:fromDegrees="90"
android:toDegrees="90"
android:pivotX="50%"
android:pivotY="50%"
android:drawable="@drawable/and_card_details_button_up_onclick"/>
</item>
<item>
<rotate
android:fromDegrees="90"
android:toDegrees="90"
android:pivotX="50%"
android:pivotY="50%"
android:drawable="@drawable/and_card_details_button_up_onclick"/>
</item>
</selector>