2015-07-26 2 views
0

Я хочу создать уведомление Android с прозрачным фоном. Я использую bigContent с remoteViews для создания своего собственного макета, но когда я устанавливаю цвет фона основного макета на @ android/color/transparent, ничего не происходит. Я все еще вижу стандартный белый фон уведомления.Прозрачный фон оповещения в Android

Как установить прозрачный фон в уведомлении Android? Я отмечаю, что я не имею в виду панель уведомлений (или строку состояния), но фон пользовательского уведомления.

+0

Вы уверены, что «стандартный белый фон» не исходит от самого уведомления лотка ? – CommonsWare

+0

Да, я уверен;) Я создаю remoteViews с прозрачным фоном xml-макета, но уведомление выглядит как «что-то» за моей компоновкой, и я не могу изменить цвет этого «чего-то»: D –

+0

«Да, m sure "- как вы это определили? Если вы не пишете свой собственный ПЗУ и не ограничиваете свое приложение этим пользовательским ПЗУ, вы не контролируете поведение лотка уведомлений. Разработчик ПЗУ (обычно производитель устройства) зависит от того, как выглядит и работает лента уведомлений. – CommonsWare

ответ

2

Как CommonsWare говорит в комментариях, это невозможно сделать.

Если изменение не было произведено изготовителем телефона (это, скорее всего, не разрешено), уведомление создается слоями. Нижний слой представляет собой фоновый вид, он имеет сероватый цвет на леденец (не помню предварительно леденец в моей голове). В верхней части фонового представления у вас есть представление содержимого, предоставленное уведомлением (представление, которое вы можете сделать). Когда вы сделаете свой вид прозрачным, вы увидите фон. Вы не можете изменить фон.

На леденец это значения по умолчанию:

<color name="notification_legacy_background_color">#ff1a1a1a</color> 

<!-- The color of the material notification background --> 
<color name="notification_material_background_color">#fffafafa</color> 

<!-- The color of the material notification background when dimmed --> 
<color name="notification_material_background_dimmed_color">#d4ffffff</color> 

<!-- The color of the material notification background when low priority --> 
<color name="notification_material_background_low_priority_color">#ffe0e0e0</color> 

<!-- The color of the material notification background for media notifications when no custom 
    color is specified --> 
<color name="notification_material_background_media_default_color">#ff424242</color> 

Дополнительная информация: http://androidxref.com/5.1.1_r6/xref/frameworks/base/packages/SystemUI/res/values/colors.xml#80

http://androidxref.com/5.1.1_r6/xref/frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/ActivatableNotificationView.java

+2

«Если не изменено изготовителем телефона (что очень вероятно не допускается)» - за пределами устройств серии Nexus любое другое устройство основного производителя обычно изменяет внешний вид лотка уведомлений от того, что находится в AOSP. И я не вижу ничего в документе определения совместимости, который бы исключал это. – CommonsWare

+0

Спасибо. Теперь я знаю, что я не могу этого сделать;) –

+0

Вы правы CommonsWare, просто прочитайте документ совместимости, там нет ничего, что вы не можете настроить опыт. – JohanShogun

Смежные вопросы