在通知图标中添加数字

时间:2017-01-23 11:39:53

标签: android android-notifications android-notification-bar

我在我的Android应用程序中实现了一个通知系统,我想知道是否有任何方法可以将小图标设置为数字/文本。因为在我的通知中,我想显示用户在小图标字段中具有的新订单的数量。反正有没有涉及不同数字的许多不同图像,并将它们组合起来产生任何数字?

这是我的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);
    }

2 个答案:

答案 0 :(得分:1)

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

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

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

?

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

答案 1 :(得分:0)

这不是一件轻而易举的事。目前我认为有时钟和基于日历的值的钩子可以根据时间或日期改变图标。

有些开发人员有幸通过构建新的位图来手动更改图标,但是如果没有重新启动,启动器是否会拾取这些新图标,那么它会受到影响。

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