Подтвердить что ты не робот

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

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

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

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

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

4b9b3361

Ответ 1

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

Вот ссылка на документацию: 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);
    

Ответ 2

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

iconLevel field

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