我正在创建一个应用程序,具有可重用的资源(因为按钮总是相同的,但镜像或旋转)。我确实想使用相同的资源,这样我就不必再添加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
来旋转它,但正如我已经解释过的那样,我不喜欢这种方法。
有没有可能直接在XML上实现这一点,或者您认为这是最好的方法?把所有的资源都旋转起来,在代码中旋转吗?
- EDIT - @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>
https://stackoverflow.com/questions/8716289
复制相似问题