为什么我的通知smallIcon总是灰显?

时间:2017-07-26 06:03:51

标签: android notifications icons material-design

我尝试将小图标精确地制作成16x16,灰度,灰色和白色(灰色为hex值616161),以创建应用程序图标的轮廓。

然而,无论它在通知中显示为白色/灰色方块。我做错了什么?

(我的分钟api是21,假设它是相关的)

3 个答案:

答案 0 :(得分:17)

关注this link

首先让我们了解Android文档,如下所示

  

“更新或删除涉及颜色的资产。系统忽略所有   动作图标和主要通知图标中的非Alpha通道。   您应该假设这些图标仅为alpha。系统   在白色和动作图标中绘制深灰色的通知图标。“

现在很容易错过,我看到很多应用程序都存在于应用程序商店中,数千名用户没有遵循上述指南。

因此,让我详细解释如何通过点击几下将您的通知图标转换为Android友好图标。

在您喜欢的图像编辑器中打开您的图标文件。将您不想显示的图像的所有部分转换为透明像素。所有颜色和非透明像素均以白色显示。让我们来看一个例子。

enter image description here

您可以询问设计师或使用此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的通知图标