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" ツール:オーバーライドは= "真の"> 'を追加 <項目名= "アンドロイド:の、textColor"> @ color/app_primary_text 'これは[ソースコード](https://github.com/android/platform_frameworks_support/blob/master/v7/appcompat/res/layout/notification_template_lines_media.xml)にあるスタイル名です。 )。しかし、何も起こりません。テキストの色はまだ白です。 – Ratul
tools:override = "true"を使用する理由は、_overriding @ style/TextAppearance_AppCompat_Notification_Title_Mediaで、com.android.support:appcompat-v7でプライベートとマークされています。意図的な場合は、tools:override = "true"を使用します。そうでない場合は、別の名前を指定します。 プライベートリソースは参照しないでください。どこにも存在していなくても、どこにいても予告なく消えることがあります。 これを修正するには、自分のプロジェクトにリソースをコピーします。これは、オーバーライドなしで使用すると表示されます。 – Ratul
あなたのmin sdkとはどのデバイスがテスト済みですか? –