3

我正在尝试在通知栏上显示一个图标。该图标是一个LevelListDrawable,可以通过设置级别来更改内容。问题是我无法为通知中的图标设置级别。我曾尝试使用“Notification.icon”和“Notification.iconLevel”,但它不起作用。

这是我的代码片段。谁能看到有什么问题?

Notification notification = new Notification(R.drawable.ic_stat_notify, "", System.currentTimeMillis());
notification.icon = R.drawable.ic_stat_notify;
notification.iconLevel = 30;
notification.setLatestEventInfo(context, "Hello", "World", intent);
manager.notify(NOTIFICATION_ID, notification);

这是我的 LevelListDrawable

?xml version="1.0" encoding="utf-8"?>
level-list xmlns:android="http://schemas.android.com/apk/res/android" >
    <item android:drawable="@drawable/ic_stat_notify_0"
        android:minLevel="0"
        android:maxLevel="9"/>
    <item android:drawable="@drawable/ic_stat_notify_10"
        android:minLevel="10"
        android:maxLevel="11"/>
    <item android:drawable="@drawable/ic_stat_notify_20"
        android:minLevel="20"
        android:maxLevel="29"/>
    <item android:drawable="@drawable/ic_stat_notify_30"
        android:minLevel="30"
        android:maxLevel="39"/>
    <item android:drawable="@drawable/ic_stat_notify_40"
        android:minLevel="40"
        android:maxLevel="49"/>
    <item android:drawable="@drawable/ic_stat_notify_50"
        android:minLevel="50"
        android:maxLevel="59"/>
    <item android:drawable="@drawable/ic_stat_notify_60"
        android:minLevel="60"
        android:maxLevel="69"/>
    <item android:drawable="@drawable/ic_stat_notify_70"
        android:minLevel="70"
        android:maxLevel="79"/>
    <item android:drawable="@drawable/ic_stat_notify_80"
        android:minLevel="80"
        android:maxLevel="89"/>
    <item android:drawable="@drawable/ic_stat_notify_90"
        android:minLevel="90"
        android:maxLevel="99"/>
    <item android:drawable="@drawable/ic_stat_notify_100"
        android:minLevel="100"
        android:maxLevel="100"/>
</level-list>
4

2 回答 2

1

如果您想在展开的通知列表中显示通知的某个图标,您应该使用没有 iconLevel 的“普通”可绘制来创建通知,并且在第一次更新时您可以设置另一个图标(例如级别列表)并设置图标级别。

用于更新状态栏中的图标

    notification.icon = R.drawable.ic_stat_notify;
    notification.iconLevel = 30;
    manager.notify(NOTIFICATION_ID, notification);

重要的是调用 notify() 以使更新可见,并且不会更新展开列表中的图标,除非您重新创建通知。

于 2012-07-17T07:50:36.310 回答
0

这是一个可能的重复: android Notification setSmallIcon with level-list

这似乎是Android中的一个错误。使用级别列表更新通知时,状态栏图标会更新,但通知下拉菜单中的图标不会。这里已经报道过:http ://code.google.com/p/android/issues/detail?id=43179&q=setSmallIcon&colspec=ID%20Type%20Status%20Owner%20Summary%20Stars

于 2013-02-26T07:28:56.430 回答