0

我为我的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); 
    } 
+0

请发布您的代码 –

+0

我刚刚发布我的代码。 –

回答

0

这是无小事。目前我相信有时钟和日历值的钩子可以根据时间或日期更改图标。

一些开发者已经通过构建新的位图手动更改图标,但是它碰到并错过了这些新图标是否会被启动程序拾起而不重新启动。

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

+0

感谢您的回答。然后我会尝试创建一个小部件。 –

0

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

如果你问有关通知图标,去这里 https://www.skoumal.net/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