web-dev-qa-db-ja.com

Lollipopの通知アイコンの背景を変更する

Notifications design pattern を試していましたが、通知アイコンの背景について説明するものは見つかりませんでした。おそらくお気づきのように、カスタム通知の背景は明るい灰色のみです。ただし、ハングアウトのようなアプリ、または単にUSBデバッグ通知には、通知アイコンの背景にカスタム色が付いています。

その灰色を別のものに変える可能性はありますか? (プログラムで特定の円の色)

See picture

77

1)色を取得する

int color = 0xff123456;
int color = getResources().getColor(R.color.my_notif_color);
int color = ContextCompat.getColor(context, R.color.my_notif_color);

2)通知に色を設定します

NotificationCompat.Builder builder = new NotificationCompat.Builder(this);
...
builder.setColor(color);
Notification notif = builder.build();

色はロリポップでのみ尊重され、小さなアイコンの背景にのみ影響します。大きなアイコンが表示された場合、その内容はすべてあなたの責任です。

ソース: NotificationCompat.Builder#setColor(int)

153
Eugen Pechanec

colors.xmlで色を定義した場合、NotificationBuilderで値を次のように追加します。

.setColor(getResources().getColor(R.color.<YOUR_COLOR>))

これで問題が解決するはずです。アイコンの背景にのみ影響します。

9
satyapol

getColor(int)Resourcesで非推奨になりました

次の選択肢のいずれかを使用する必要があります。

2
Luís Ramalho