在android上创建自定义按钮动画

在android上创建自定义按钮动画,android,animation,imagebutton,Android,Animation,Imagebutton,我有一个imagebutton,我想在它更改为drawable时设置动画。我想动画的运动,从一个到另一个,就像打开抽屉时汉堡包变成了一个后箭头。很抱歉,这些图片是白色的,与背景相同(我仅有的一个版本),所以只要从链接中拖动图片,你就会明白我的意思。我希望有人能给我指出正确的方向,让我开始使用它。您可以使用动画可绘制和基于位图的帧创建动画图标。在L上,可以使用AnimatedStateListDrawable创建有状态动画(如复选框动画) 下面是一个动画绘制示例(实际上这是L preview上复选

我有一个imagebutton,我想在它更改为drawable时设置动画。我想动画的运动,从一个到另一个,就像打开抽屉时汉堡包变成了一个后箭头。很抱歉,这些图片是白色的,与背景相同(我仅有的一个版本),所以只要从链接中拖动图片,你就会明白我的意思。我希望有人能给我指出正确的方向,让我开始使用它。

您可以使用动画可绘制和基于位图的帧创建动画图标。在L上,可以使用AnimatedStateListDrawable创建有状态动画(如复选框动画)

下面是一个动画绘制示例(实际上这是L preview上复选框的实现),使用15毫秒长的帧,可以从代码开始和停止:

<animation-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:duration="15" android:drawable="@drawable/my_icon_frame_000" />
    ...additional frames...
</animation-list>


有关详细信息:

您想要哪种动画?
<animated-selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_enabled="false" android:state_checked="true">
        <bitmap android:src="@drawable/btn_check_to_on_mtrl_015" android:tint="?attr/colorControlActivated" android:alpha="?attr/disabledAlpha" />
    </item>
    <item android:state_enabled="false">
        <bitmap android:src="@drawable/btn_check_to_on_mtrl_000" android:tint="?attr/colorControlNormal" android:alpha="?attr/disabledAlpha" />
    </item>
    <item android:state_checked="true" android:id="@+id/on">
        <bitmap android:src="@drawable/btn_check_to_on_mtrl_015" android:tint="?attr/colorControlActivated" />
    </item>
    <item android:id="@+id/off">
        <bitmap android:src="@drawable/btn_check_to_on_mtrl_000" android:tint="?attr/colorControlNormal" />
    </item>
    <transition android:fromId="@+id/off" android:toId="@+id/on">
        <animation-list>
            <item android:duration="15">
                <bitmap android:src="@drawable/btn_check_to_on_mtrl_000" android:tint="?attr/colorControlNormal" />
            </item>
            ...additional frames...
        </animation-list>
    </transition>
    <transition android:fromId="@+id/on" android:toId="@+id/off">
        <animation-list>
            <item android:duration="15">
                <bitmap android:src="@drawable/btn_check_to_off_mtrl_000" android:tint="?attr/colorControlActivated" />
            </item>
            ...additional frames...
        </animation-list>
    </transition>
</animated-selector>