我尝试将小图标精确地制作成16x16,灰度,灰色和白色(灰色为hex
值616161),以创建应用程序图标的轮廓。
然而,无论它在通知中显示为白色/灰色方块。我做错了什么?
(我的分钟api
是21,假设它是相关的)
答案 0 :(得分:17)
首先让我们了解Android文档,如下所示
“更新或删除涉及颜色的资产。系统忽略所有 动作图标和主要通知图标中的非Alpha通道。 您应该假设这些图标仅为alpha。系统 在白色和动作图标中绘制深灰色的通知图标。“
现在很容易错过,我看到很多应用程序都存在于应用程序商店中,数千名用户没有遵循上述指南。
因此,让我详细解释如何通过点击几下将您的通知图标转换为Android友好图标。
在您喜欢的图像编辑器中打开您的图标文件。将您不想显示的图像的所有部分转换为透明像素。所有颜色和非透明像素均以白色显示。让我们来看一个例子。
您可以询问设计师或使用此tool生成您的图标
答案 1 :(得分:3)
对于通知,您必须为不同版本的android使用不同的图标:
Notification notification = new Notification.Builder(context)
.setAutoCancel(true)
.setContentTitle("My notification")
.setContentText("Look, white in Lollipop, else color!")
.setSmallIcon(getNotificationIcon())
.build();
return notification;
根据版本
获取通知图标private int getNotificationIcon() {
boolean useWhiteIcon = (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP);
return useWhiteIcon ? R.drawable.icon_silhouette : R.drawable.ic_launcher;
}
答案 2 :(得分:3)
除了新功能外,Android 5.0还包含各种系统更改和API行为更改。 PL。浏览notification behavior changes。
通知以白色(或非常轻)顶部的深色文字绘制 背景匹配新的材料设计小部件。确保这一点 使用新的配色方案,您的所有通知都是正确的。如果你的 通知看起来不对,修复它们:
- 使用
setColor()
在图标图片后面的圆圈中设置强调色。- 更新或删除涉及颜色的资产。系统会忽略操作图标和主通知图标中的所有非Alpha通道。 您应该假设这些图标仅为alpha。系统 用白色和灰色的动作图标绘制通知图标。
因此,基本上您必须使用silhouette图标作为API级别21的通知图标