據我所知,我們可以使用通知管理器+遠程視圖在Android中創建通知。通知欄中的動畫自定義視圖
我正在創建一個下載MP3文件的通知。我想在它旁邊有一個動畫。到目前爲止,我從論壇上了解到,這是不可能的。
但是我看到了一個Android應用程序的視頻,該應用程序下載並在其下載時顯示動畫。 鏈接:http://www.youtube.com/watch?v=yNcs-sS2nFU&feature=related
有人可以告訴我實現它的最佳方法。
據我所知,我們可以使用通知管理器+遠程視圖在Android中創建通知。通知欄中的動畫自定義視圖
我正在創建一個下載MP3文件的通知。我想在它旁邊有一個動畫。到目前爲止,我從論壇上了解到,這是不可能的。
但是我看到了一個Android應用程序的視頻,該應用程序下載並在其下載時顯示動畫。 鏈接:http://www.youtube.com/watch?v=yNcs-sS2nFU&feature=related
有人可以告訴我實現它的最佳方法。
我發現在通知中顯示自定義動畫的最佳方式是將AnimationDrawable用作具有ID的資源。然後,只需在發佈通知時指定可繪製資源ID。不需要進一步的代碼來更新動畫的每個幀。動畫可繪製爲你處理。
這裏是一個文檔的鏈接:http://developer.android.com/reference/android/graphics/drawable/AnimationDrawable.html
因此,例如,你將需要:
添加XML文件(如 「wheelAnim.xml」)將RES /繪製/文件夾包含以下內容:
<!-- Animation frames are wheel0.png -- wheel5.png files inside the
res/drawable/ folder -->
<animation-list android:id="selected" android:oneshot="false">
<item android:drawable="@drawable/wheel0" android:duration="50" />
<item android:drawable="@drawable/wheel1" android:duration="50" />
<item android:drawable="@drawable/wheel2" android:duration="50" />
<item android:drawable="@drawable/wheel3" android:duration="50" />
<item android:drawable="@drawable/wheel4" android:duration="50" />
<item android:drawable="@drawable/wheel5" android:duration="50" />
</animation-list>
添加在XML文件中,你舉的每個繪製參考st爲動畫列表(也就是PNG或其他圖像格式)在res/drawable/
文件夾中創建。
在代碼中使用動畫列表的資源ID(在本例中爲「R.drawable.wheelAnim」)。例如:
Notification notification = new Notification(R.drawable.wheelAnim, null,
System.currentTimeMillis());
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0,
new Intent(), 0);
notification.flags |= Notification.FLAG_AUTO_CANCEL;
notification.setLatestEventInfo(this, getText(R.string.someTitle),
getText(R.string.someText), pendingIntent);
((NotificationManager) getSystemService(NOTIFICATION_SERVICE)).notify(
uid, notification);
我已經嘗試在較新的NotificationBuilder類中使用動畫drawables作爲小圖標,並且它在狀態欄中看起來很棒。但是,當您拉下通知抽屜時,圖標不會生成動畫。有沒有人有過這方面的經驗,並且您是否在拉下視圖中使圖標變成動畫有任何成功? – iHearGeoff 2013-06-03 21:39:16
在documentation創建狀態欄通知,它說,你可以循環一堆在LevelListDrawable
改變了Notification
類的iconLevel
屬性定義的圖像:
iconLevel場
該值指示用於 通知圖標的LevelListDrawable的當前級別。您可以通過將該值更改爲 與LevelListDrawable中定義的drawable關聯來在狀態欄中爲該圖標設置動畫。有關更多信息,請參閱LevelListDrawable 參考。
我意識到這一點,但我的問題是動畫remoteView對象。我正在做的是一次又一次地發送通知,這給動畫效果。但是,3000ms後的帖子帖子,如果我減少到2000ms以下的值。我的模擬器在幾次更新後掛起,我希望設備以相同的方式作出反應。該視頻顯示了一些非常有趣的事物,它以100ms - 500ms的延遲動畫化了一個對象。這讓我感到驚訝。 – JehandadK 2011-01-18 09:57:25
視頻看起來就像是從升級Froyo或薑餅。你應該看看NotificationBuilder類,它可以讓你設置一個進度值來實現你在視頻中看到的水平條。 – iHearGeoff 2013-06-03 21:41:46