Estou criando um aplicativo, com recursos que podem ser reaproveitados (porque os botões são sempre os mesmos, mas espelhados ou girados). Eu quero usar o mesmo recurso, então não preciso adicionar mais 3 recursos que são exatamente como o original, mas rotacionados. Mas também não quero misturar o código com coisas que podem ser declaradas no XML ou fazer transformações com uma matriz que custará tempo de processamento.
Eu tenho um botão de dois estados declarado em um 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 quero reutilizar o drawable porque será o mesmo, mas girado 90º e 45º e atribuo ao botão como um drawable.
<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" />
Eu sei que posso girar com um RotateDrawable
ou com umMatrix
mas como já expliquei, não gosto dessa abordagem.
É possível fazer isso diretamente no XML ou qual você acha que será a melhor maneira de fazer isso? Colocar todos os recursos menos girados, girá-los no código?
--- EDITAR --- A resposta de @dmaxi funciona muito bem, veja como combiná-la com uma lista de itens :)
<?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>