Google是否允许开发人员创建图标transitions such as these?还是开发人员有责任创建这种“令人愉快的”过渡?我真的很想在我的应用程序中实现这些。
Specifically icons like this
最佳答案
您可以使用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>