显示动画状态栏图标



我试图将通知状态栏图标设置为动画android.R.drawable。Stat_sys_upload,它工作得很好,但图标不动画:

private void showStatusNotification() {
    NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
    Builder notificationBuilder = new NotificationCompat.Builder(this);
    notificationBuilder.setAutoCancel(false);
    notificationBuilder.setOngoing(true);
    notificationBuilder.setContentIntent(PendingIntent.getActivity(this, 0, new Intent(this,
            MainActivity.class), PendingIntent.FLAG_UPDATE_CURRENT));
    notificationBuilder.setContentTitle(getString(R.string.notification_title));
    notificationBuilder.setContentText(getString(R.string.notification_text));
    notificationBuilder.setSmallIcon(android.R.drawable.stat_sys_upload);
    notificationManager
            .notify(STATUS_NOTIFICATION_ID, notificationBuilder.build());
}

解决方案很简单,但非常棘手。你只需要加上

notificationBuilder.setTicker(getString(R.string.notification_ticker));

奇迹发生了,你的图标是动画。它与这个bug有关:

http://code.google.com/p/android/issues/detail?id=15657

希望对大家有所帮助。

只是为了添加@gingo的答案,如果您不想在状态栏中显示任何文本,那么在strings.xml中保持notification_ticker String为空白(这是相当明显的)

同样,如果你想让动画图标在进度或下载/上传完成后停止,那么在notificationBuilder中设置一个类似的图标,并在通知管理器中调用notify方法,

 mBuilder.setSmallIcon(R.drawable.ic_download);
 mNotifyManager.notify(0, mBuilder.build());

相关内容

  • 没有找到相关文章

最新更新