我正在使用开发者指南(http://developer.android.com/guide/topics/graphics/drawable-animation.html)来创建动画记录按钮,进行微小更改以使操作栏menuitem而不是imageView。当我打电话给onStart时它没有播放?
以下是使用
的代码RecordButton.setIcon(R.drawable.recordbutton);
recordAnimation = (AnimationDrawable) RecordButton.getIcon();
recordAnimation.start();
有谁知道为什么不玩?
答案 0 :(得分:2)
对我来说,在下一个周期中开始()
new Handler().post(new Runnable() {
@Override
public void run() {
animationDrawable.start();
}
});
答案 1 :(得分:0)
我遇到了同样的问题。通过使用此处所述的操作栏提供程序,我能够绕过它:http://developer.android.com/guide/topics/ui/actionbar.html#ActionProvider
跳过ShareActionProvider并创建一个自定义的。这使您可以使用操作栏项目(在本例中为ImageView)的自定义布局,您可以按照可绘制动画指南链接中的描述进行操作。
答案 2 :(得分:0)
我告诉这个可能会在这里结束的人:在我的应用程序中,我只是尝试使用相同的方法使用AnimationDrawable更改ActionBar按钮的图标,并且它可以正常工作。
My AnimationDrawable ic_action_recording_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>
按下图标后我调用此方法(我在onOptionsItemSelected
中处理它们):
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);
}
}
编辑:我刚看到在icon.start()
中使用onCreateOptionsMenu
并没有实际启动动画......
我最终在changeMenuIcon
onWindowFocusChanged