我正在构建基于Google's Universal Media Player的媒体播放器应用。现在我面临玩家创建通知的问题。
创建通知的代码:
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
可以完成这项工作,但当时我希望文字颜色为黑色。无法弄清楚如何更改文字颜色。即使我提供黑色图标,播放/暂停的图标也不会改变。
答案 0 :(得分:0)
尝试一下这样的自定义通知:
使用通知并使用内置方法设置文本时,以下行会创建布局:
RemoteViews contentView = new RemoteViews(context.getPackageName(),
com.android.internal.R.layout.status_bar_latest_event_content);
上述布局包含以下View,负责查看通知文本:
<TextView android:id="@+id/text"
android:textAppearance="@style/TextAppearance.StatusBar.EventContent"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:singleLine="true"
android:ellipsize="marquee"
android:fadingEdge="horizontal"
android:paddingLeft="4dp" />
所以结论是所需的样式是TextAppearance.StatusBar.EventContent,其定义如下:
<style name="TextAppearance.StatusBar.EventContent">
<item name="android:textColor">#000000</item>
</style>
这里有一些参考。 希望这能解决您的问题。