【问题标题】:Flashing Actionbar Icon闪烁的操作栏图标
【发布时间】:2013-03-10 08:59:36
【问题描述】:

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

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

这可以通过操作栏图标实现吗?

【问题讨论】:

  • 当你说“图标”是什么意思?它位于操作栏的哪个部分?可以发个截图吗?
  • 操作栏右侧的标准操作栏菜单图标(或按钮或菜单项。以正确的术语为准)。

标签: android


【解决方案1】:

您可以尝试使用 MenuItem 的 setIcon 方法。因为它需要一个 Drawable,你可以使用 AnimationDrawable 来实现你的慢闪效果。

【讨论】:

  • 好建议,但不幸的是这不起作用。我尝试将 AnimationDrawable 设置为 MenuItem,并在 onCreateOptionsMenu() 中启动动画。我认为解决它的唯一方法是创建一个自定义的 ActionProvider 类,这有点痛苦。
【解决方案2】:

我可能以一种狡猾的方式这样做,因为我对 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;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-03
    相关资源
    最近更新 更多