Лучший способ показать пользовательскую анимацию в уведомлении - использовать AnimationDrawable в качестве ресурса с идентификатором.Затем просто укажите ID ресурса для рисования при публикации вашего уведомления.Никакого дополнительного кода не требуется для обновления каждого кадра анимации.Анимационная прорисовка справится с этим за вас.
Вот ссылка на документацию: http://developer.android.com/reference/android/graphics/drawable/AnimationDrawable.html
Так, например, вам необходимо:
Добавить файл XML (например, "wheelAnim.xml ") в вашу папку res / drawable / со следующим содержимым:
<!-- 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, который вы только что создали список анимации (будь то PNG или другой формат изображения) в папке res/drawable/
.
Используйте идентификатор ресурса списка анимации (в данном примере это «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);