【问题标题】:Android L "delightful" drawable transformationsAndroid L“令人愉快”的可绘制转换
【发布时间】:2014-10-11 21:03:14
【问题描述】:

Google 是否允许开发者创建图标 transitions such as these?还是开发人员有责任创造这种“令人愉快”的过渡?我真的很想在我的应用中实现这些。

Specifically icons like this

【问题讨论】:

    标签: android-animation android-5.0-lollipop material-design


    【解决方案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>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-09
      • 1970-01-01
      • 1970-01-01
      • 2016-12-06
      • 1970-01-01
      • 2014-05-31
      相关资源
      最近更新 更多