Android L "восхитительные" drawable преобразования

позволяет ли Google значок переходы, такие как эти будет создан разработчиком? Или это ответственность разработчиков за создание таких "восхитительных" переходов? Я бы очень хотел реализовать их в своем приложении.

специально иконки, как это

1 ответов


вы можете создать анимированный значок с помощью animateddrawable и растровых кадров. На L можно использовать AnimatedStateListDrawable для создания анимации с состоянием (например, флажок анимация).

вот пример AnimatedDrawable (на самом деле это реализация для флажка на 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>

и вот AnimatedStateListDrawable используя AnimatedDrawable переходы к установите флажок анимация, которая запускается и останавливается автоматически в зависимости от состояния представления:

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