Saya membuat aplikasi, dengan sumber daya yang dapat digunakan kembali (karena tombol selalu sama, tetapi dicerminkan atau diputar). Saya ingin menggunakan sumber daya yang sama jadi saya tidak perlu menambahkan 3 sumber daya lagi yang persis seperti aslinya tetapi dirotasi. Tetapi saya juga tidak ingin mencampurkan kode dengan hal-hal yang dapat dideklarasikan dalam XML atau membuat transformasi dengan matriks yang akan memakan waktu pemrosesan.
Saya memiliki tombol dua status yang dideklarasikan dalam 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>
dan saya ingin menggunakan kembali drawable karena akan sama tetapi diputar 90º dan 45º dan saya tetapkan ke tombol sebagai 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" />
Saya tahu bahwa saya dapat memutarnya dengan a RotateDrawable
atau dengan a Matrix
tetapi seperti yang sudah saya jelaskan, saya tidak suka pendekatan itu.
Apakah mungkin untuk mencapai itu secara langsung di XML atau menurut Anda apa yang akan menjadi cara terbaik untuk melakukannya? Taruh semua sumber daya kecuali dirotasi, putar dalam kode?
--- EDIT --- Jawaban @dmaxi berfungsi dengan baik, ini adalah cara menggabungkannya dengan daftar item :)
<?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>