【问题标题】:Notification - Change notification icon color according to activity theme通知 - 根据活动主题更改通知图标颜色
【发布时间】:2018-01-25 14:01:36
【问题描述】:

我正在尝试开发一个应用程序来通知人们某些操作...


问题是我想创建一个 smallIcon drawable,它会根据状态栏颜色或活动主题动态更改其颜色


我有一个透明背景的白色可绘制图标,并尝试过这种方式,但图标颜色始终为白色。

  NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(context, "notification")
            .setSmallIcon(R.drawable.white_logo)
            .setContent(contentView)
            .setOngoing(true)
            .setContentIntent(contentIntent);

【问题讨论】:

    标签: android notifications


    【解决方案1】:

    android 5.x及以上无法更改图标颜色,但可以向下滑动更改图标颜色

    private void showNotification(Context context) {
        Log.d(MainActivity.APP_TAG, "Displaying Notification");
        Intent activityIntent = new Intent(context, MainActivity.class);
        PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, activityIntent, PendingIntent.FLAG_UPDATE_CURRENT);
        NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(context);
        mBuilder.setSmallIcon(R.drawable.ic_notification);
        mBuilder.setColor(Color.GREEN);
        mBuilder.setContentIntent(pendingIntent);
        mBuilder.setContentTitle("EarthQuakeAlert");
        mBuilder.setContentText("It's been a while you have checked out earthquake data!");
        mBuilder.setDefaults(Notification.DEFAULT_SOUND);
        mBuilder.setAutoCancel(true);
        NotificationManager mNotificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
        mNotificationManager.notify(1, mBuilder.build());
    }
    

    你的输出将是这样的:

    另外,如果您将 gradle 或 manifest 文件中的 targetSdkVersion 更改为 21 以下,通知图标将是彩色的。 (从 sdk 级别 21 开始,通知图标上有一个白色过滤器。)(不推荐!)

    android {
        defaultConfig {
            targetSdkVersion 20
        }
    }
    

    清单

    <uses-sdk
        android:targetSdkVersion="20" />
    

    你可以看到这个。但不推荐,因为在更高版本的api中你会看到一个空白框并且不会出现通知。

    【讨论】:

    • 当我启动活动时,白色图标的状态栏颜色应该是灰色,反之亦然。它只是永久设置色调......
    猜你喜欢
    • 1970-01-01
    • 2018-05-03
    • 1970-01-01
    • 2018-10-23
    • 1970-01-01
    • 2018-06-22
    • 2018-02-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多