Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/224.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 无法更改NotificationCompat MediaStyle文本颜色_Android_Android Mediaplayer - Fatal编程技术网

Android 无法更改NotificationCompat MediaStyle文本颜色

Android 无法更改NotificationCompat MediaStyle文本颜色,android,android-mediaplayer,Android,Android Mediaplayer,我正在构建一个基于的媒体播放器应用程序。现在我面临着玩家创建通知的问题 创建通知的代码: NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(mService); notificationBuilder .setStyle(new NotificationCompat.MediaStyle() .setShowActionsInCo

我正在构建一个基于的媒体播放器应用程序。现在我面临着玩家创建通知的问题

创建通知的代码:

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
可以完成这项工作,但当时我希望文本颜色为黑色。无法确定如何更改文本颜色。即使我提供黑色图标,播放/暂停图标也不会更改


尝试以下自定义通知:

<style name="TextAppearance.StatusBar.EventContent">
    <item name="android:textColor">#000000</item>
</style>
使用通知并使用内置方式设置文本时,以下行将创建布局:

  RemoteViews contentView = new RemoteViews(context.getPackageName(),
            com.android.internal.R.layout.status_bar_latest_event_content);
上述布局包含以下视图,该视图负责查看通知文本:

<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>

#000000
这里有一些参考文献。 希望这能解决你的问题


尝试以下自定义通知:

<style name="TextAppearance.StatusBar.EventContent">
    <item name="android:textColor">#000000</item>
</style>
使用通知并使用内置方式设置文本时,以下行将创建布局:

  RemoteViews contentView = new RemoteViews(context.getPackageName(),
            com.android.internal.R.layout.status_bar_latest_event_content);
上述布局包含以下视图,该视图负责查看通知文本:

<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>

#000000
这里有一些参考文献。 希望这能解决你的问题


我添加了
@color/app\u primary\u text
,因为这是我在中找到的样式名称。但什么也没发生。文本颜色仍然为白色。使用工具的原因:override=“true”是:overriding@style/textpearance\u AppCompat\u Notification\u Title\u Media在com.android中标记为private。支持:AppCompat-v7。如果有意,请使用工具:override=“true”,否则请选择其他名称。私人资源不应被引用;它们可能不会无处不在,即使在它们所在的地方,它们也可能会在没有通知的情况下消失。要解决此问题,请将资源复制到您自己的项目中。当我在不使用覆盖的情况下使用时会出现此问题。您的最小sdk是什么,您测试了哪个设备。请尝试以下操作:contentView.setTextColor(R.id.text2,statColor);Min SDK版本是17,我在运行Android 6.0.1I的Nexus 5上测试,添加
@color/app_primary_text
,因为这是我在。但什么也没发生。文本颜色仍然为白色。使用工具的原因:override=“true”是:overriding@style/textpearance\u AppCompat\u Notification\u Title\u Media在com.android中标记为private。支持:AppCompat-v7。如果有意,请使用工具:override=“true”,否则请选择其他名称。私人资源不应被引用;它们可能不会无处不在,即使在它们所在的地方,它们也可能会在没有通知的情况下消失。要解决此问题,请将资源复制到您自己的项目中。当我在不使用覆盖的情况下使用时会出现此问题。您的最小sdk是什么,您测试了哪个设备。请尝试以下操作:contentView.setTextColor(R.id.text2,statColor);MinSDK版本是17,我在运行安卓6.0.1的Nexus5上测试