ฉันกำลังสร้างแอปโดยมีทรัพยากรที่สามารถใช้ซ้ำได้ (เนื่องจากปุ่มต่างๆมักจะเหมือนกัน แต่จะเป็นมิเรอร์หรือหมุน) ฉันต้องการใช้ทรัพยากรเดียวกันดังนั้นฉันจึงไม่ต้องเพิ่มทรัพยากรอีก 3 รายการที่เหมือนกับต้นฉบับทุกประการ แต่ถูกหมุนเวียน แต่ฉันก็ไม่ต้องการผสมโค้ดกับสิ่งที่สามารถประกาศใน XML หรือทำการแปลงด้วยเมทริกซ์ที่จะเสียเวลาในการประมวลผล
ฉันมีปุ่มสถานะสองปุ่มที่ประกาศใน 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>
และฉันต้องการใช้ที่ดึงได้ซ้ำเพราะมันจะเหมือนเดิม แต่หมุน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
หรือด้วย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>