最佳答案
我正在创建一个应用程序,资源可以重用(因为按钮总是相同的,但镜像或旋转)。我确实想使用相同的资源,所以我不必再添加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" />
我知道我可以旋转它与 RotateDrawable
或与 Matrix
,但正如我已经解释了我不喜欢这种方法。
Is it possible to achieve that directly on the XML or what do you think that will be the best way to do it? Put all resources but rotated, rotate them in the code?
- 编辑 @ 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>