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