2013-03-10 150 views
1

我有一个ActionBar图标,它是聊天消息屏幕的按钮。我有两个图标副本。一个标准灰色,一个黄色。闪动操作栏图标

当我显示黄色图标以指示有消息在等待时,我希望它缓慢闪烁。

这可能与一个操作栏图标?

+0

当你说'图标'是什么意思?这是在什么部分的行动吧?你可以张贴截图吗? – 2013-03-10 09:33:26

+0

操作栏右侧的标准操作栏菜单图标(或按钮或菜单项,无论哪个是正确的术语)。 – 2013-03-10 10:33:26

回答

1

您可以尝试使用MenuItem的setIcon方法。由于需要Drawable,因此可以使用AnimationDrawable来实现缓慢的闪光效果。

+0

很好的建议,但不幸的是这不起作用。我尝试将AnimationDrawable设置为MenuItem,并在onCreateOptionsMenu()中启动动画。我认为唯一的办法就是创建一个自定义的ActionProvider类,这有点痛苦。 – 2013-03-10 12:50:28

+0

你可以发布你试过的代码吗? – 2013-03-10 20:00:32

1

我大概是这样做的,因为我对Android很陌生,但也许它会帮助某个人/某人会纠正我。

我有一个500毫秒的定时器,定期执行哪个运行“invalidateOptionsMenu();”这会导致菜单重新绘制,一旦发生这种情况,您只需在里面隐藏/显示您的图标,在我闪烁'无信号'图标下方。只需将您的计时器设置为您想要的任何闪光时间。

@Override 
public boolean onCreateOptionsMenu(Menu menu) 
{ 
    getMenuInflater().inflate(R.menu.menu, menu); 

    if(!AppStates.InternetAvailable || !AppStates.ServerContactable) 
    { 
     if(!NoSignalFlashState) NoSignalFlashState=true; 
     else NoSignalFlashState=false; 
     menu.findItem(R.id.ActionNoSignal).setVisible(NoSignalFlashState); 
    } 
    else menu.findItem(R.id.ActionNoSignal).setVisible(false); 

    super.onCreateOptionsMenu(menu); 

    return true; 
}