有没有办法将动态图像(Drawables)设置为通知图标?

时间:2014-10-25 12:28:29

标签: android drawable android-notifications

我正在创建通知,并希望能够动态更改通知中显示的图标(我正在创建/发布)。

当我尝试这样做时,我收到错误 - >的 ncomp.setSmallIcon(绘制对象)

设置通知图标的唯一方法是来自drawable文件夹中我的apk包的一部分吗?有没有办法设置动态图像 - 就像我每次发布通知时下载几个图像并设置不同的图标?????

private void addNotificationtoStatusBar(String packageName, Context ctxt,
        CharSequence tickerText, Notification notifObj) {
    NotificationManager nManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
    NotificationCompat.Builder ncomp = new NotificationCompat.Builder(ctxt);
    ncomp.setContentTitle(mAppInfos
            .getAppNamefromPackage(packageName, ctxt));
    ncomp.setContentText(tickerText);
    ncomp.setTicker(tickerText);

    PendingIntent resultPendingIntent = notifObj.contentIntent;

    ncomp.setContentIntent(resultPendingIntent);


    Drawable d = myClass.getDrawable();
    ncomp.setSmallIcon(d); // <--**THIS GIVES ERROR**


    ncomp.setAutoCancel(true);
    nManager.notify((int) System.currentTimeMillis(), ncomp.build());
}

1 个答案:

答案 0 :(得分:2)

我已经通过手机接听了,因此我无法为您查找具体方法,但我会回答您并在文档中查找要使用的方法。

将图像放入图标有两种方法。

  • 使用drawable文件夹中的固定drawable,只需将资源ID传递给构建器&#39; R.drawable.myIcon&#39;

  • 您可以使用位图。这个位图可能来自互联网,或者你通过代码生成,它并不重要,一个位图。为此,您应该使用NotifucationsCompat中的Builder,并可能为其添加主题。作为一种下载n缓存的方法,我建议使用Picasso库。 &#39; Picasso.with(上下文).load(URL).fetch();&#39;或其中一种异步方法。