Animation in Notification bar Custom View

后端 未结 2 1270
春和景丽
春和景丽 2020-11-28 08:17

As far as I know we can create notifications in Android using Notification Manager + remote Views.

I am Creating a notification for downloading Mp3 files. And I want

相关标签:
2条回答
  • 2020-11-28 08:47

    In the documentation for creating status bar notifications, it says you can cycle through a bunch of images that are defined in a LevelListDrawable by changing the iconLevel property of the the Notification class:

    iconLevel field

    This value indicates the current level of a LevelListDrawable that is used for the notification icon. You can animate the icon in the status bar by changing this value to correlate with the drawable's defined in a LevelListDrawable. See the LevelListDrawable reference for more information.

    0 讨论(0)
  • 2020-11-28 08:51

    The best way I have found to show a custom animation in a notification is to use an AnimationDrawable as a resource with an ID. Then simply specify the drawable resource ID when you post your notification. No further code is needed to update each frame of the animation. The animation drawable handles that for you.

    Here is a link to documentation: http://developer.android.com/reference/android/graphics/drawable/AnimationDrawable.html

    So for example you would need to:

    1. Add an xml file (such as "wheelAnim.xml") to your res/drawable/ folder with the following contents:

      <!-- 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. Add each drawable reference in the xml file you just created for the animation-list (be it PNG or other image format) in the res/drawable/ folder as well.

    3. Use the resource ID of the animation-list (which in this example is "R.drawable.wheelAnim") in your code. For example:

      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);
      
    0 讨论(0)
提交回复
热议问题