在Android L中通知栏图标变为白色

4

我正在使用远程视图来自定义通知布局。一切都很好。唯一的问题是通知在通知状态栏中显示为白色圆形。我希望我的应用程序图标能够显示在通知状态栏中(就像在KitKat及以下版本中显示的那样)。有没有办法改变这个?

private void showNotification() {

        Intent intent = new Intent(this, HomeActivity.class);
        intent.putExtra(LIVE_RADIO_PUSH, true);
        PendingIntent pendingIntent = PendingIntent.getActivity(this, 1, intent, 0);
        mBuilder = new NotificationCompat.Builder(this);
        mBuilder.setCategory(Notification.CATEGORY_SERVICE);
        mBuilder.setContentTitle(mTitle);
        mBuilder.setContentText("Live Radio");
        mBuilder.setSmallIcon(R.drawable.logo);
        mBuilder.setWhen(System.currentTimeMillis());
        mBuilder.setVisibility(Notification.VISIBILITY_PUBLIC);
        mBuilder.setContentIntent(pendingIntent);
        mBuilder.setColor(getResources().getColor(R.color.theme_primary));
        mNotificationView = new RemoteViews(getPackageName(), R.layout.notification_layout);
        mNotificationView.setTextViewText(R.id.content_title, mTitle);
        mNotificationView.setTextViewText(R.id.content_text, "Live Radio");
        SimpleDateFormat dateFormat = new SimpleDateFormat("hh:mm");
        String time = dateFormat.format(new Date(System.currentTimeMillis()));
        mNotificationView.setTextViewText(R.id.current_time, time);
        mNotificationView.setImageViewResource(R.id.play_pause, R.drawable.pause_radio);
        mNotificationView.setImageViewResource(R.id.close_btn, R.drawable.notifictn_close_btn);


        setListeners(mNotificationView);
        mBuilder.setContent(mNotificationView);
        Log.d(TAG, "App is freezed2");
        if (null != mNotificationMngr)
            mNotificationMngr.notify(RADIO_NOTIFICATION_ID, mBuilder.build());
    }

发布你的通知代码。 - Ramesh
@Ramesh 更新了我的代码。 - Sangeetha Pinto
3个回答

2

我将minSdkVersion设置为8,targetSdkVersion设置为17,但在运行Android 6.0的设备上仍然遇到了同样的问题。还有其他人经历过这样的情况吗? - Sandra

0

最近我们完成了一个带通知的应用程序,它在Lollipop中运行良好。请检查下面的代码,也许它会对您有所帮助。

mNotification = new Notification.Builder(this).setContentTitle("M3 Media Player").setContentIntent(mPendingIntentHome)
                    .setSmallIcon(R.drawable.app_icon).setPriority(Notification.PRIORITY_MAX).setContent(mNotificationContentView)
                    .setStyle(new Notification.BigPictureStyle()).build();

我的通知功能正常,唯一的问题是状态栏中显示为白色。但是当我打开通知区域时,它会正确显示。我的问题是如何将那个白色颜色更改为我的通知图标? - Sangeetha Pinto
另外,我参考了这个链接:https://dev59.com/wl4c5IYBdhLWcg3wCGf2,他们说这是因为Lollypop中的设计已经改变。// statusbar/BaseStatusBar.java如果(entry.targetSdk >= Build.VERSION_CODES.LOLLIPOP){ entry.icon.setColorFilter(mContext.getResources().getColor(android.R.color.white)); } else { entry.icon.setColorFilter(null); } - Sangeetha Pinto

0

但是大多数应用程序图标今天仍然是彩色的。这怎么可能?我不认为它们使用旧的SDK编译,是吗? - Emil

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接