在通知图标中添加小图标

Add small icon in Notification Icon

我正在使用以下代码获取通知图标。这给出了正常的通知图标,但它的右下角有一个小白框。我怎样才能为它设置图标。

 public void not() {
        Notification noti = new Notification.Builder(context).setSmallIcon(R.mipmap.lnc)
                .setLargeIcon(BitmapFactory.decodeResource(context.getResources(), R.mipmap.lnc))
                .setContentTitle("My Title")
                .setContentText("Done").setSmallIcon(R.mipmap.lnc)
                .build();
        NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
        // hide the notification after its selected
        noti.flags |= Notification.FLAG_AUTO_CANCEL;

        notificationManager.notify(0, noti);
    }

棒棒糖以后,你的小图标必须是单色的即透明背景和白色,否则会显示为白框。因此,将您的 R.mipmap.lnc 转换为剪影,即以您想要显示的部分应为白色且背景为透明的方式创建您的图标。如果你想给背景添加颜色,你可以使用 setColor 方法。

阅读thislink。

使用setSmallIcon(R.drawable.YOUR_SMALL_ICON) 为通知设置小图标。

仅供参考, 根据设计指南,您必须为 Builder.setSmallIcon() 使用 silhouette。参见 design gideline

Notification noti = new Notification.Builder(context)
            .setSmallIcon(getNotificationSmallIcon())
            .setLargeIcon(BitmapFactory.decodeResource(context.getResources(), R.mipmap.lnc))
            .setContentTitle("My Title")
            .setContentText("Done")
            .build();

..................
..........................

private int getNotificationSmallIcon() {
    boolean useWhiteIcon = (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP);
    return useWhiteIcon ? R.drawable.ic_silhouette : R.drawable.ic_launcher;
}
        NotificationCompat.Builder mNotifyBuilder;

 mNotifyBuilder = new NotificationCompat.Builder(context)
                .setContentTitle("Captian Mansoura")
                .setContentText("Busy , On trip Now")
             .setLargeIcon(BitmapFactory.decodeResource(context.getResources(), R.mipmap.lnc))

                .setSmallIcon(R.mipmap.notify_offline);

试试这个