Ich erstelle eine App mit Ressourcen, die wiederverwendet werden können (da Schaltflächen immer gleich sind, aber gespiegelt oder gedreht werden). Ich möchte dieselbe Ressource verwenden, damit ich nicht drei weitere Ressourcen hinzufügen muss, die genau dem Original entsprechen, aber gedreht sind. Ich möchte den Code aber auch nicht mit Dingen mischen, die im XML deklariert werden können, oder Transformationen mit einer Matrix durchführen, die Verarbeitungszeit kostet.
Ich habe eine Schaltfläche mit zwei Status in einem XML deklariert.
<?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>
und ich möchte das Zeichenelement wiederverwenden, da es das gleiche ist, aber um 90 ° und 45 ° gedreht wird, und ich ordne den Knopf als Zeichenelement zu.
<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" />
Ich weiß, dass ich es mit einem RotateDrawable
oder mit einem drehen kann, Matrix
aber wie ich bereits erklärt habe, mag ich diesen Ansatz nicht.
Ist es möglich, dies direkt im XML zu erreichen, oder was ist Ihrer Meinung nach der beste Weg, dies zu tun? Alle Ressourcen außer gedreht setzen, im Code drehen?
--- BEARBEITEN --- Die Antwort von @dmaxi funktioniert hervorragend, so kombiniert man sie mit einer Artikelliste :)
<?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>