如何更改通知操作按钮的图标?

时间:2015-07-05 20:04:08

标签: android android-notifications

当您使用.addAction(int图标,CharSequence标题,PendingIntent意图)构建通知并添加操作按钮时,有没有办法在按下时更改图标?

3 个答案:

答案 0 :(得分:0)

您需要创建如下所示的drawable,并将其提供给addAction

button.xml

|   NAME | TYPE | X_ZONE_1 | Y_ZONE_1 | X_ZONE_2 | Y_ZONE_2 | X_ZONE_3 | Y_ZONE_3 |
|--------|------|----------|----------|----------|----------|----------|----------|
| LINE_1 |    A |    53.36 |    48.99 |    41.11 |    93.85 |     3.44 |    87.41 |
| LINE_2 |    B |     4.36 |    81.38 |    92.86 |     5.37 |    24.45 |     78.6 |

<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/actionbarcontacts_on" android:state_pressed="true"/> <item android:drawable="@drawable/actionbarcontacts_on" android:state_focused="true"/> <item android:drawable="@drawable/actionbarcontacts_off"/> </selector>

答案 1 :(得分:0)

要实时更改操作图标,您需要设置具有相同标题和新图标的新操作,然后重新启动通知。 例如:

notificationBuilder.actions[1] = new Notification.Action(R.drawable.pause, "play", pendingIntent);
startForeground(101, notificationBuilder);

notificationBuilder.actions[1] = new Notification.Action(R.drawable.pause, "play", pendingIntent);
((NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE)).notify(101, notificationBuilder);

答案 2 :(得分:0)

使用广播,处理其中的按钮事件(改变图标,用改变的图标创建一个新的通知并用之前的id调用它),并将必要的参数传递给意图。