재사용 할 수있는 리소스로 앱을 만들고 있습니다 (버튼은 항상 동일하지만 미러링되거나 회전되기 때문입니다). 동일한 리소스를 사용하고 싶으므로 원본과 똑같지 만 회전 된 리소스를 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
또는 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>