2016-02-28 43 views
0

我通過以下代碼生成了本地通知。通知圖標是圓形的白色,而不是棒棒糖中的應用程序圖標

Notification notification = new Notification.Builder(context) 
    .setAutoCancel(true) 
    .setContentTitle("title") 
    .setContentText("message") 
    .setWhen(System.currentTimeMillis()) 
    .setSmallIcon(getNotificationIcon()) 
    .build(); 



private static int getNotificationIcon() { 
    boolean useWhiteIcon = (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP); 
    return useWhiteIcon ? R.drawable.icon_loli : R.drawable.ic_launcher; 
} 

其中icon icon_loli是16 * 16的白色圖標。仍然低於21的API版本,它工作得很好,但在棒棒糖&上面,它會顯示一個通知,在圖像下方

enter image description here

+0

的可能的複製[通知欄圖標在Android的5棒棒糖變白(http://stackoverflow.com/questions/28387602/notification-bar -icon-turns-white-in-android-5-lollipop) –

回答

0

這是因爲setSmallIcon(),並與材料設計,它是唯一的黑人和白色,因爲主要目的是顯示統一圖標到頂部欄。如果你希望你的標誌,你將不得不使用setLargeIcon(),如:

Notification notification = new Notification.Builder(context) 
    .setAutoCancel(true) 
    .setContentTitle("title") 
    .setContentText("message") 
    .setWhen(System.currentTimeMillis()) 
    .setSmallIcon(getNotificationIcon()) 
    .setLargeIcon(BitmapFactory.decodeResource(getResources(), R.mipmap.ic_launcher)) 
    .build(); 
+0

setLargeIcon()採用app的全尺寸標識,如api lvl低於20? – user3819810

+0

這不能解決我的問題。仍然站着 – user3819810

+0

沒問題。您應該從頭開始使用大圖標和小圖標。對於狀態欄小(設計建議有一個白色的圖標,但在棒棒糖之前,你可以使用任何你想要的,但自從棒棒糖,操作系統迫使你只顯示白色的小圖標)。大圖標將保留您輸入的彩色圖標。 – xiaomi

相關問題