再利用可能なリソースを使用してアプリを作成しています(ボタンは常に同じですが、ミラーリングまたは回転されるため)。同じリソースを使用したいので、元のリソースとまったく同じでローテーションされているリソースを3つ追加する必要はありません。しかし、コードをXMLで宣言できるものと混合したり、処理時間のかかるマトリックスを使って変換したりしたくありません。
XMLで宣言された2つの状態ボタンがあります。
<?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>
ドローアブルは再利用したいと思います。これは同じですが、90度と45度回転し、ボタンにドローアブルとして割り当てます。
<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" />
a RotateDrawable
またはaで回転できることは知っていますMatrix
が、すでに説明したように、そのアプローチは好きではありません。
それをXMLで直接達成することは可能ですか?それを行うための最良の方法は何だと思いますか?回転以外のすべてのリソースを入れて、コードで回転させますか?
---編集--- @dmaxiの答えはうまくいきます。これは、アイテムリストと組み合わせる方法です:)
<?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>