Анимация в панели уведомлений Пользовательский вид

Насколько я знаю, мы можем создавать уведомления в Android, используя Notification Manager + remote Views.

Я создаю уведомление для загрузки Mp3-файлов. И я хочу анимацию рядом с ней. До сих пор я узнал на форумах, что это невозможно.

Однако я видел видео для Android-приложения, которое загружает и отображает анимацию рядом с ней при загрузке. Ссылка: http://www.youtube.com/watch?v=yNcs-sS2nFU&feature=related

Может ли кто-нибудь сказать мне лучший способ добиться этого.

Лучший способ, которым я нашел показать пользовательскую анимацию в уведомлении, – использовать AnimationDrawable в качестве ресурса с идентификатором. Затем просто укажите идентификатор ресурса, когда вы публикуете свое уведомление. Для обновления каждого кадра анимации дополнительный код не требуется. Анимированные чертежи для вас.

Вот ссылка на документацию: http://developer.android.com/reference/android/graphics/drawable/AnimationDrawable.html

Так, например, вам нужно:

  1. Добавьте xml-файл (например, «wheelAnim.xml») в папку res / drawable / folder со следующим содержимым:

    <!-- 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> 
  2. Добавьте каждую ссылочную ссылку в xml-файл, который вы только что создали для списка анимации (будь то PNG или другой формат изображения) в папке res/drawable/ .

  3. Используйте идентификатор ресурса списка анимации (который в этом примере «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); 

В документации для создания уведомлений о статусной строке говорится, что вы можете перебирать кучу изображений, которые определены в LevelListDrawable , изменяя свойство iconLevel класса Notification :

Поле iconLevel

Это значение указывает текущий уровень LevelListDrawable, который используется для значка уведомления. Вы можете анимировать значок в строке состояния, изменив это значение, чтобы коррелировать с drawable, определенным в LevelListDrawable. Для получения дополнительной информации см. Ссылку LevelListDrawable.