在通知图标中添加数字

Adding numbers in a notification icon

我为我的 Android 应用程序实现了一个通知系统,我想知道是否有任何方法可以将小图标设置为 number/text。因为在我的通知中我想在小图标字段中显示用户的新订单数量。无论如何,有没有办法做到这一点而不涉及大量不同数字的不同图像并将它们组合起来生成任何数字?

这是我的 pushNotification 方法:

public void PushNotification()
    {
        NotificationManager nm = (NotificationManager)getApplicationContext().getSystemService(NOTIFICATION_SERVICE);
        Notification.Builder builder = new Notification.Builder(getApplicationContext());
        Intent notificationIntent = new Intent(getApplicationContext(), MainScreen.class);
        PendingIntent contentIntent = PendingIntent.getActivity(getApplicationContext(),0,notificationIntent,0);

        //set
        builder.setContentIntent(contentIntent);
        builder.setSmallIcon(R.drawable.chef_hat);
        Bitmap largeIcon = BitmapFactory.decodeResource(getResources(), R.drawable.chef_hat);
        builder.setLargeIcon(largeIcon);

        builder.setContentText("Click here to open the app.");
        //Uri uri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_RINGTONE);
        //builder.setDefaults(Notification.DEFAULT_SOUND);

        System.out.println("Subtraction: " + (auxiliar1 - auxiliar2));

        if (auxiliar1 - auxiliar2 == 1) {
            builder.setContentTitle("You have a new order!");
        } else if ((auxiliar1 - auxiliar2) > 1){
            builder.setContentTitle("You have " + (auxiliar1 - auxiliar2) + " new orders!");
        } else {
            builder.setContentTitle("You have a new order!");
        }

        auxiliar1 = 0;
        auxiliar2 = TabLayoutScreenActivity.orderSizeFixed;

        if(android.os.Build.VERSION.SDK_INT>=21) {
            builder.setColor(Color.parseColor("#D8540D"));
        }
        builder.setAutoCancel(true);
        //builder.setDefaults(Notification.DEFAULT_ALL);
        long[] v = {500,1000};
        builder.setVibrate(v);
        if (PrefernceHelper.getString(MainScreen.this, Commons.Constants.NOTIFICATION_SOUD) == null) {
            Uri uri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
            builder.setSound(uri);
        }
        else {
            builder.setSound(Uri.parse(PrefernceHelper.getString(MainScreen.this, Commons.Constants.NOTIFICATION_SOUD)));
        }

        Notification notification = builder.build();
        nm.notify((int)System.currentTimeMillis(),notification);
    }

这 none 微不足道。目前我相信有时钟和基于日历的值的钩子可以根据时间或日期改变图标。

一些开发人员通过构建新的位图手动更改图标很幸运,但是这些新图标是否会在不重新启动的情况下被启动器拾取还不确定。

我建议改为为您的应用创建一个小部件!

我希望您问的是通知图标而不是启动器图标。

如果您要询问通知图标,请转到此处 https://www.skoumal.com/en/android-how-draw-text-bitmap/

我建议将位图用作 setLargeIcon 方法的一部分,因为小图标用作应用程序的通知图标。

// notification icon
builder.setSmallIcon(R.drawable.ic_notification); 

//you can use custom icon
Bitmap largeIcon = createMyCustomIconWithNumber();
builder.setLargeIcon(largeIcon); 

如果您要询问启动器图标,请转到此处。 https://github.com/leolin310148/ShortcutBadger