2013-03-10 91 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; 
}