Sto creando un'app, con risorse che possono essere riutilizzate (perché i pulsanti sono sempre gli stessi, ma specchiati o ruotati). Voglio usare la stessa risorsa, quindi non devo aggiungere altre 3 risorse che sono esattamente come l'originale ma ruotate. Ma non voglio nemmeno mescolare il codice con cose che possono essere dichiarate nell'XML o fare trasformazioni con una matrice che costerà tempo di elaborazione.
Ho un pulsante a due stati dichiarato in 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>
e voglio riutilizzare il disegnabile perché sarà lo stesso ma ruotato di 90º e 45º e lo assegno al pulsante come disegnabile.
<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" />
So che posso ruotarlo con a RotateDrawable
o con a Matrix
ma come ho già spiegato non mi piace questo approccio.
È possibile ottenerlo direttamente sull'XML o quale pensi che sarà il modo migliore per farlo? Metti tutte le risorse ma ruotate, ruotale nel codice?
--- EDIT --- La risposta di @dmaxi funziona alla grande, ecco come combinarla con un elenco di elementi :)
<?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>