我正在尝试开发一个可以通知人们某些行为的应用程序......
问题是我想创建一个smallIcon drawable,它会根据状态栏颜色或活动主题动态改变颜色
我有一个透明背景的白色可绘图标,并尝试了这种方式,但图标颜色始终为白色。
NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(context, "notification")
.setSmallIcon(R.drawable.white_logo)
.setContent(contentView)
.setOngoing(true)
.setContentIntent(contentIntent);
答案 0 :(得分:0)
您不能将图标上的颜色更改为Android 5.x及更高版本,但您可以在向下滑动时更改图标的颜色
evalin
您的输出将是:
此外,如果您将gradle或manifest文件中的targetSdkVersion更改为21以下,则通知图标将会变得丰富多彩。 (从sdk级别21开始,通知图标上有一个白色过滤器。)(不推荐!)
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());
}
清单
android {
defaultConfig {
targetSdkVersion 20
}
}
你可以看到这个。但不推荐使用,因为在较高的api中,您会看到一个空白框,并且不会显示通知。