Android animationDrawable未在Actionbar中播放?

Android animationDrawable未在Actionbar中播放?,android,Android,我使用开发者指南()创建了一个动画记录按钮,对actionbar菜单项(而不是imageView)进行了一些小的修改。当我呼叫onStart时,它不播放 这是我使用的代码 RecordButton.setIcon(R.drawable.recordbutton); recordAnimation = (AnimationDrawable) RecordButton.getIcon(); recordAnimation.start(); 有人知道它为什么不播放吗?我也有同样的问题。我可以通过使用

我使用开发者指南()创建了一个动画记录按钮,对actionbar菜单项(而不是imageView)进行了一些小的修改。当我呼叫onStart时,它不播放

这是我使用的代码

RecordButton.setIcon(R.drawable.recordbutton);
recordAnimation = (AnimationDrawable) RecordButton.getIcon();
recordAnimation.start();

有人知道它为什么不播放吗?

我也有同样的问题。我可以通过使用操作栏提供程序绕过它,如下所述:


跳过ShareActionProvider并创建一个自定义的。这使您可以为操作栏项目(本例中为图像视图)使用自定义布局,您可以按照指向可绘制动画指南的链接中所述对其进行操作。

for me working调用start()


我要告诉可能会在这里结束的人:在我的应用程序中,我刚刚尝试用相同的方法将ActionBar按钮的图标更改为AnimationDrawable,效果很好


My AnimationDrawable
ic\u action\u recording\u active

<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
    android:oneshot="false" >
    <item android:drawable="@drawable/ic_action_recording_active0" android:duration="200" />
    <item android:drawable="@drawable/ic_action_recording_active1" android:duration="200" />
    <item android:drawable="@drawable/ic_action_recording_active2" android:duration="200" />
</animation-list> 
编辑:我刚才看到在
onCreateOptions菜单中使用
图标.start()
实际上并没有启动动画


我最后在WindowFocusChanged中调用了
changeMenuIcon
,您找到解决方案了吗?我也有同样的问题。我的图标更改为AnimationDrawable,但仍停留在第一帧上。为其他需要类似于我所做的事情的人继续此操作。我希望菜单项的行为像一个正常的项目,但与动画图标。为了使项目正常运行,我必须添加一些额外的内容:、和(按下或使用箭头键选择时高亮显示)。
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
    android:oneshot="false" >
    <item android:drawable="@drawable/ic_action_recording_active0" android:duration="200" />
    <item android:drawable="@drawable/ic_action_recording_active1" android:duration="200" />
    <item android:drawable="@drawable/ic_action_recording_active2" android:duration="200" />
</animation-list> 
public void changeMenuIcon(MenuItem item) {
    if (isRecording) {
        item.setIcon(R.drawable.ic_action_recording_active);
        AnimationDrawable icon = (AnimationDrawable) item.getIcon();
        icon.start();
    } else {
        item.setIcon(R.drawable.ic_action_recording);
    }
}