android通知图标显示为白色块

KGC*_*beX 0 icons android image android-notifications

我在通知中显示的图标遇到了麻烦。我浏览了材料设计页面中的图标和Notification doc

我使用了BMP 256颜色格式的不同比例:360px,144px,48px,24px 16px都继续显示白色块。

我将格式更改为PNG,使用了144px(在代码中使用的名称为“ ic_notify_icon”),仍然没有运气。

//Global
private NotificationManager mNotifyManager ;
private Notification mNotify;

private void initialize() {
    mNotifyManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
    Notification.Builder mNotificationBuilder = new Notification.Builder(this);
    mNotificationBuilder.setSmallIcon(R.mipmap.ic_notify_icon);
    mNotificationBuilder.setContentTitle("A Title here");
    mNotificationBuilder.setContentText("Some content text here");
    mNotify = mNotificationBuilder.build();
    ShowNotify();
}

private void ShowNotify(){
    //...some code here
    mNotifyMan.notify(0, mNotify);
    //...some code here
}
Run Code Online (Sandbox Code Playgroud)

有什么建议么?

附言:我看了这篇文章,同样的问题,但我觉得它没有帮助/用处,或者我只是不理解要求...

Mik*_*Yan 7

android中的通知图标必须是透明的并且没有背景色!

如果图标具有圆形颜色背景,则图标将变成白色圆形块。

只有背景非常透明的图标才能用作通知图标。


KGC*_*beX 5

我找到了解决方案!

我只发现了有关Android通知(SDK 22 /版本5.1.1)的要求的提示,但是经过4个小时的搜索,终于找到了一个完整且有效的解决方案。

这是我遵循的步骤,似乎与各种论坛,问题/答案和文档中提到的内容保持一致,但不需要“步骤/要求”:

创建和准备图像

  1. 创建图像,但是您可以根据需要选择应用图标: 在此处输入图片说明 又快又脏
  2. 下载一个应用程序以设置透明度-我使用了IrfanView,效果很好 在此处输入图片说明 这是我在IrfanView中的图片
  3. 在IrfanView中打开图片, click File > Save As or press 's'
  4. 您应该有一个Save Dialog打开窗口(右上角有一个保存选项对话框-如果没有,在保存对话框的右下角,选中该Save options dialog复选框,它应该会打开)

  5. 我的设置(默认设置)是:

    • 压缩等级-6
    • 使用主窗口颜色获得透明度-已选中
    • 二进制编码
    • (ICO):使用主窗口颜色进行透明度-已选中
  6. 选中以下两个框:

    • 保存透明色-已选中(我只选中了此复选框,但没有成功-有人可以解释为什么不这样做)
    • 将Transparentcy保存为Alpha通道-已选中
  7. 另存为PNG文件。 在此处输入图片说明 保存框和保存选项

在Android Studio中:

  1. Right-Click Drawable folder > Add image asset (任何资源文件夹都应该这样做) 在此处输入图片说明
  2. 点击Notification Icon从顶部的下拉列表(默认为Launcher Icon在此处输入图片说明
  3. 选择 Image > Browse to image> click ok 在此处输入图片说明 您会注意到您的图像是灰度的

这是正常现象,因为Lollipop SDK (API 21 - Ver 5.0.1)唯一允许这种颜色方案,在搜索中我遇到了材料设计页面,其中提到了这一行中的内容(有人可以解释为什么如此)

在下面,您会注意到您的通知图标使用不同的“ dpi分辨率”,通常添加图像会显示白色块,但是添加透明度可以解决此问题。

我相信可以从“彩色”的角度使用此颜色,在这种情况下,IrfanView具有默认的黑色背景,从而针对该颜色创建了“反转”图像(假设在IrfanView中,则留下了“使用主窗口颜色”为了提高透明度-选中”),您可以创建其他有趣的图像。

我真的希望这会有所帮助!