我创建了一个Android通知,用作"小部件"并显示经典电视遥控器的一些按钮以控制电视。问题是这个通知在使用nougat和oreo的Android设备上正确显示,但在以前的版本上没有。
NotificationCompat.Builder mBuilder =
new NotificationCompat.Builder(context, channel_id)
.setSmallIcon(R.drawable.ic_arrow_circle_line)
.setStyle(new android.support.v4.media.app.NotificationCompat.MediaStyle())
.setContent(contentView)
.setCustomBigContentView(contentView)
.setOngoing(false)
.setAutoCancel(true);
有没有办法阻止通知在256dp上被裁剪?
答案 0 :(得分:0)
原因:对于5.0 Lollipop“通知图标必须全白”。
如果我们通过将目标SDK设置为20来解决白色图标问题,我们的应用程序将不会针对Android Lollipop,这意味着我们无法使用Lollipop特有的功能。 目标Sdk 21的解决方案
如果您想支持Lollipop材质图标,请为Lollipop及以上版本制作透明图标。请参阅以下内容:https://design.google.com/icons/
请查看http://developer.android.com/design/style/iconography.html,我们会看到白色样式是Android Lollipop中通知的显示方式。
在Lollipop中,Google还建议我们使用将在白色通知图标后面显示的颜色。请参阅链接:https://developer.android.com/about/versions/android-5.0-changes.html
的任何地方以下Lollipop操作系统版本的Notification Builder实现将是:
Notification notification = new NotificationCompat.Builder(this);
if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
notification.setSmallIcon(R.drawable.icon_transperent);
notification.setColor(getResources().getColor(R.color.notification_color););
} else {
notification.setSmallIcon(R.drawable.icon);
}
注意:setColor仅在Lollipop中可用,它只影响图标的背景。
它将完全解决您的问题!!