2010-05-25 142 views
43

在iPhone上,您可以爲應用程序圖標添加一個編號的徽章。在黑莓手機上,我已經在程序中成功地將圖像繪製到應用程序的圖標上。我也想爲Android做這個。我不想使用通知欄,因爲它不需要立即通知。相反,我只希望用戶能夠通過查看應用程序圖標來查看應用程序中有多少條新消息。有沒有辦法將徽章添加到Android中的應用程序圖標?

+1

您是否找到解決方案? – 2011-09-06 08:41:45

+0

這是我見過的最好的解決方案。 http://stackoverflow.com/a/24804467/957954 – 2014-07-17 13:12:07

+0

我的三星筆記5顯示他們的Skype,WhatsApp和Facebook。所以它一定是可能的。 – Zapnologica 2016-07-03 15:34:03

回答

30

不幸的是,Android不允許更改應用程序圖標,因爲一旦程序編譯完成,它就被封裝在APK中。沒有辦法以編程方式將其更改爲「可繪製」。

您可以通過使用小部件而不是圖標來實現目標。小工具是高度可定製的,可以做你想做的。

有一個關於iPhone的圖標通知,並使用小部件這裏的區別一個簡短的討論:

http://www.cnet.com/8301-19736_1-10278814-251.html

正如你會發現,這裏使用一個小部件或圖標之間幾乎沒有差別,因爲它們可以是相同的尺寸並且看起來相同。

+1

+1,小部件是groomsy需要的部件。 – 2010-05-25 14:45:43

+1

你確定沒有辦法將Launcher的主屏幕和bit-blt徽章劫持到圖像上嗎?我想要相同的功能,而appwidget是針對不同問題的不同解決方案。任何人都可以扔掉我的小工具,但除非他們卸載應用程序,該圖標永遠保持真實。 自從這個問題後,在Eclair/Froyo的日子被問及薑餅的操作系統級別的變化?? – mobibob 2011-02-09 01:04:57

+0

股票應用程序如消息如何? 'BadgeProvider'呢? – minmaxavg 2013-11-16 08:41:03

16

這也適用於Sony的Xperia Home。我已經對此進行了博客here,但重要的部分如下。索尼設備使用名爲BadgeReciever的類。

  1. 聲明com.sonyericsson.home.permission.BROADCAST_BADGE許可清單檔案中的:

  2. 廣播的IntentBadgeReceiver

    Intent intent = new Intent(); 
    
    intent.setAction("com.sonyericsson.home.action.UPDATE_BADGE"); 
    intent.putExtra("com.sonyericsson.home.intent.extra.badge.ACTIVITY_NAME", "com.yourdomain.yourapp.MainActivity"); 
    intent.putExtra("com.sonyericsson.home.intent.extra.badge.SHOW_MESSAGE", true); 
    intent.putExtra("com.sonyericsson.home.intent.extra.badge.MESSAGE", "99"); 
    intent.putExtra("com.sonyericsson.home.intent.extra.badge.PACKAGE_NAME", "com.yourdomain.yourapp"); 
    
    sendBroadcast(intent); 
    
  3. 完成。一旦這個Intent廣播發射器應該在你的應用程序圖標上顯示一個徽章。

  4. 再次刪除徽章,只需發送一個新的廣播,這一次SHOW_MESSAGE設置爲false:

    intent.putExtra("com.sonyericsson.home.intent.extra.badge.SHOW_MESSAGE", false); 
    

我已經排除我如何發現這個細節讓答案短,但它在博客中都可用。可能是一個有趣的閱讀某人。

我已經發布了一個關於此here的單獨的SO問題,一旦我被允許(在8小時內需要10個聲望來回答我自己的問題)纔會添加完整答案。

9

ShortcutBadger庫使它成爲可能,並與LG,索尼,三星,HTC和其他自定義啓動器一起使用。

它甚至可以在純Android設備桌面上顯示徽章計數。

更新徽章計數的應用程序圖標是那麼容易,因爲調用:

int badgeCount = 1; 
ShortcutBadger.setBadge(getApplicationContext(), badgeCount); 

它包括一個演示應用程序,允許你來測試它的行爲。

OR

,你也可以嘗試活動的別名這樣做,但在這一點,你需要用徽章價值創造不同的圖標,它會在個案則需要2個不同的應用圖標之間切換工作的偉大(需要創建不同的活動別名來顯示不同的圖標,即更多的圖標=更多的活動別名)。

+0

我已經下載了ShortcutBadger的zip文件並導入到我的AndroidStudio中。當我在提供的EditText中輸入10時,它會顯示Toast消息。但是圖標上沒有顯示任何內容。我們必須做的 – 2016-02-01 05:07:51

+0

對不起,不明白你的意思..你可以明確你想要什麼。,........因爲我已經指定了如何使用shorcutBadger設置徽章。 – 2016-02-01 10:50:49

+0

在導入到Android Studio後,ShortcutBadger正在運行成功。我的問題是「當我在EditText中輸入一些數字並點擊SET BADGE按鈕時,我無法在啓動器上的應用程序中看到任何徽章。」爲什麼我無法看到這個徽章。 – 2016-02-01 11:11:21

相關問題