Est-il possible de faire pivoter un dessin dans la description du xml?

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 veux utiliser la même ressource, donc je n’ai pas besoin d’append 3 ressources supplémentaires qui sont exactement comme l’original mais en rotation. Mais je ne veux pas non plus mélanger le code avec des éléments pouvant être déclarés dans le XML ou effectuer des transformations avec une masortingce qui coûtera du temps de traitement.

J’ai un bouton à deux états déclaré dans un XML.

       

et je veux réutiliser le dessinable car il sera identique mais tourné à 90º et 45º et j’atsortingbue le bouton à dessiner.

 

Je sais que je peux le faire pivoter avec RotateDrawable ou avec une Masortingx mais comme je l’ai déjà expliqué, je n’aime pas cette approche.

Est-il possible de réaliser cela directement sur le XML ou que pensez-vous que ce sera la meilleure façon de le faire? Mettez toutes les ressources mais faites-les pivoter, faites-les pivoter dans le code?

— EDIT — La réponse de @dmaxi fonctionne bien, c’est comment le combiner avec une liste d’articles 🙂

          

Je pourrais tourner en XML:

    

Le fromDegrees est important.

Il s’agit d’une animation de rotation définie en XML. Avec fromDegrees vous définissez l’état initial pivoté. Le toDegrees est l’état de rotation final du dessinable dans la séquence d’animation mais peut être n’importe quoi si vous ne voulez pas utiliser d’animation.

Je ne pense pas qu’il alloue des ressources pour l’animation car il n’est pas nécessaire de le charger en tant qu’animation. En tant que tirable, il est rendu comme son état initial et doit être placé dans le dossier de ressources drawable être drawable . Pour l’utiliser en tant qu’animation, vous devez la placer dans un dossier de ressources animées et lancer l’animation comme ceci (juste un exemple):

 Animation rotation = AnimationUtils.loadAnimation(this, R.anim.rotation); rotation.setRepeatCount(Animation.INFINITE); myView.startAnimation(rotation); 

Je pourrais faire pivoter la flèche à gauche en XML comme:

    

Image ci-jointe pour référence.

entrer la description de l'image ici

Si des fichiers vectoriels sont utilisés, en conjonction avec une liste d’ images , de styles et d’états de couleurs, votre bouton peut être modifié comme suit:

Remarque: les fichiers vectoriels sont beaucoup plus petits que les images. Par conséquent, des définitions explicites supplémentaires n’entraînent pas de surcroît de travail, ce qui rend le code clair et explicite. la surcharge de la mise à jour de deux fichiers plutôt que la transformation de l’un d’eux):

Remarque: Android Studio est une excellente source d’actifs vectoriels.

res \ values ​​\ styles.xml

   

res \ color \ button_csl.xml

       

details_menu_large_button.xml

        

Details_Buttons_Top_Left_Button

  

and_card_details_button_down_left.xml (ic_play_arrow_black_24dp.xml)

    

and_card_details_button_down_left_onclick.xml (ic_play_arrow_black_24dp.xml modifié)