【问题标题】:Create custom button animations on android在android上创建自定义按钮动画
【发布时间】:2015-03-13 12:23:24
【问题描述】:

我有一个图像按钮,我想在它更改可绘制对象时对其进行动画处理。我想为从pencilcross 的运动设置动画,就像打开抽屉时汉堡包变成后退箭头一样。我很抱歉图像是白色的,与背景相同(我拥有的唯一版本)所以只需从链接中拖动图像,您就会明白我的意思。我希望有人能指出我正确的方向来开始这个。

【问题讨论】:

  • 你想要什么样的动画?

标签: android animation imagebutton


【解决方案1】:

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

这是一个 AnimatedDrawable 示例(实际上这是 L 预览上的复选框的实现),使用 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>

这里有一个 AnimatedStateListDrawable 使用 AnimatedDrawable 过渡来实现一个复选框动画,它会根据 View 状态自动启动和停止:

<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>

信用:Android L "delightful" drawable transformations

更多信息:http://developer.android.com/reference/android/graphics/drawable/AnimationDrawable.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-14
    • 1970-01-01
    • 2013-04-12
    • 1970-01-01
    • 1970-01-01
    • 2011-12-01
    • 2016-04-30
    • 1970-01-01
    相关资源
    最近更新 更多