通知标题中的灰色小图标

问题描述 投票:0回答:1

我创建简单的通知:

Notification.Builder builder = new Notification.Builder(this);
builder
    .setContentTitle("title")
    .setContentText("this is small text")
    .setSmallIcon(R.drawable.my_small_icon)
    .setTicker("test Ticker")
    .setStyle(new Notification.BigTextStyle().bigText("big mess"));
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.N) {

    NotificationManager notificationManager = getSystemService(NotificationManager.class);
    Bitmap image = BitmapFactory.decodeResource(this.getResources(), R.drawable.icon);
    builder.setLargeIcon(image);
    RemoteViews contentView = builder.createContentView();
    RemoteViews bigContentView = builder.createBigContentView();

    // custom contentView and bigContentView

    builder.setCustomContentView(contentView);
    builder.setCustomBigContentView(bigContentView);
    Notification n = builder.build();
    builder.build();

    notificationManager.notify(1, n);
}

[my_small_icon是透明的白色图像,我的问题不同this question

它在状态栏中显示与我的徽标相同的小图标,但显示一个灰色正方形enter image description here

此问题在Redmi 4A 7.1中发生LG K530F和Galaxy J7正常显示。

您能给我建议修复它吗?

我使用Android Asset Studio,但无济于事。

android android-notifications compatibility
1个回答
0
投票

首先,您必须检查用于通知的图像是否具有透明背景。

第二,您必须保持每个密度的大小

MDPI - 24 x 24  (drawable-mdpi)
HDPI - 36 x 36  (drawable-hdpi)
XHDPI - 48 x 48  (drawable-xhdpi)
XXHDPI - 72 x 72  (drawable-xxhdpi)
XXXHDPI - 96 x 96  (drawable-xxxhdpi)                             

在此处跟随link根据Android文档-“更新或删除涉及颜色的资产。系统将忽略操作图标和主通知图标中的所有非Alpha通道。您应该假定这些图标将仅是Alpha。系统以白色绘制通知图标,以深灰色绘制动作图标。”现在,这很容易错过,我发现应用商店中有很多应用在运行,成千上万的用户没有遵循上述准则。因此,让我详细解释一下如何单击几下即可将通知图标转换为Android友好图标。在您喜欢的图像编辑器中打开您的图标文件。将您不想显示的图像的所有部分转换为透明像素。所有颜色和非透明像素均以白色显示。


0
投票

您可以进入您的项目res文件夹

res => drawable文件夹=>右键单击drawable文件夹=>打开弹出窗口=>新建=>选择图像资产=>打开assest studio =>选择图标类型=>通知图标=>并创建并将该图标设置为通知

© www.soinside.com 2019 - 2024. All rights reserved.