Показать LevelListDrawable на панели уведомлений - PullRequest
3 голосов
/ 08 марта 2012

Я пытаюсь показать значок на панели уведомлений.Значок представляет собой 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>

Ответы [ 2 ]

1 голос
/ 17 июля 2012

Если вы хотите отобразить определенный значок для уведомления в расширенном списке уведомлений, вы должны создать уведомление с «нормальной» прорисовкой без iconLevel, и при первом обновлении вы можете установить другой значок (например, список уровней).и установите iconLevel.

Для обновления значка в строке состояния

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

важно вызвать notify (), чтобы сделать обновления видимыми, и значок не будет обновляться в развернутом виде.список, если вы не воссоздаете уведомление.

0 голосов
/ 26 февраля 2013

Это возможный дубликат этого: Уведомление Android setSmallIcon с уровнем-списком

Кажется, это ошибка в Android.При обновлении уведомления списком уровней значок строки состояния обновляется, а значок в раскрывающемся списке уведомлений - нет.Сообщалось здесь: http://code.google.com/p/android/issues/detail?id=43179&q=setSmallIcon&colspec=ID%20Type%20Status%20Owner%20Summary%20Stars

...