1
我正在構建基於Google's Universal Media Player的媒體播放器應用程序。現在我面臨着玩家創建通知的問題。無法更改NotificationCompat MediaStyle文本顏色
代碼來創建通知:
NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(mService);
notificationBuilder
.setStyle(new NotificationCompat.MediaStyle()
.setShowActionsInCompactView(
new int[]{playPauseButtonPosition}) // show only play/pause in compact view
.setMediaSession(mSessionToken))
.setColor(mNotificationColor)
.setSmallIcon(R.drawable.ic_notification)
.setVisibility(NotificationCompat.VISIBILITY_PUBLIC)
.setUsesChronometer(true)
.setContentIntent(createContentIntent(description))
.setContentTitle(description.getTitle())
.setContentText(description.getSubtitle())
.setLargeIcon(art);
之後我從代碼去除.setColor(mNotificationColor)部。我認爲它使通知的背景變成了白色。但現在背景變成這樣的灰色:
所以現在我想將背景顏色設置爲白色,這是很容易的部分。 setColor
可以完成這項工作,但那時我想讓文字顏色變黑。無法弄清楚如何改變文字顏色。即使我提供黑色圖標也不會改變播放/暫停的圖標。
我加'<樣式名稱= 「TextAppearance.AppCompat.Notification.Title.Media」 工具:倍率= 「真」> <項目名稱= 「機器人:文字顏色」> @ color/app_primary_text '因爲這是我在[源代碼]中找到的樣式名稱(https://github.com/android/platform_frameworks_support/blob/master/v7/appcompat/res/layout/notification_template_lines_media.xml )。但沒有任何反應。文字顏色仍然是白色。 – Ratul
使用工具:override =「true」的原因是:_overriding @ style/TextAppearance_AppCompat_Notification_Title_Media在com.android.support:appcompat-v7中標記爲private。如果有意,使用工具:override =「true」,否則選擇一個不同的名字。 私人資源不應被引用;可能並不是到處都有,甚至它們可能在沒有通知的情況下消失。 要解決這個問題,請將資源複製到您自己的項目中,而不是在覆蓋時使用。 – Ratul
什麼是您的最小sdk和您測試過哪個設備。 – 2017-04-10 13:27:13