7

通知ステータスバーのアイコンをアニメーション化された 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());
}
4

2 に答える 2

10

解決策は単純ですが、非常に注意が必要です。追加する必要があります

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

魔法が起こり、アイコンがアニメーション化されます。これはこのバグに関連しています:

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

それが誰かを助けることを願っています。

于 2013-03-09T13:22:35.910 に答える
2

@gingoの回答に追加するだけです。ステータスバーにテキストを表示したくない場合は、strings.xmlでnotification_ticker文字列を空白のままにしてください(これは明らかです)。

また、進行状況またはダウンロード/アップロードが完了した後にアニメーション化されたアイコンを停止する場合は、同様の外観のアイコンを notificationBuilder に設定し、通知マネージャーで通知メソッドを次のように呼び出します。

 mBuilder.setSmallIcon(R.drawable.ic_download);
 mNotifyManager.notify(0, mBuilder.build());
于 2014-02-18T10:32:26.653 に答える