I want to show a notification for a message in my app. In previous versions of Android everything is ok, but in Lollipop the notification background is white.
I used this XML code for my notification layout in layout_message_notification.xml
:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/layout_messageNotification"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/transparent">
<LinearLayout
android:layout_width="0dp"
android:layout_weight=".2"
android:layout_height="wrap_content"
android:background="@android:color/transparent">
<ImageView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:scaleType="fitCenter"
android:src="@drawable/message_icon"/>
</LinearLayout>
<LinearLayout
android:layout_width="0dp"
android:layout_weight=".8"
android:layout_height="wrap_content"
android:background="@android:color/transparent">
<TextView
android:id="@+id/textView_notification_title"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="right|center_vertical"
android:layout_margin="15dp"/>
</LinearLayout>
</LinearLayout>
My notification in lollipop is shown like this:
How can I make the notification background dark or transparent, like in previous versions of Android?
Eventually, if you like to follow official material design specification
Always use style resources for the text of a custom notification
and use custom layout of your notifications, you maybe consider to not overriding default background, but change text style due to API version. You can achieve it by creating two resource style files and used them according to current API version:
values-v21/notification_styles.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- according to official recommendation custom notifications should has the same text style as default one-->
<style name="NotificationHeader" parent="@android:style/TextAppearance.Material.Notification.Title" />
<style name="NotificationContent" parent="@android:style/TextAppearance.Material.Notification.Line2" />
</resources>
and
values/notification_styles.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- according to official recommendation custom notifications should has the same text style as default one-->
<style name="NotificationHeader" parent="@android:style/TextAppearance.StatusBar.EventContent.Title" />
<style name="NotificationContent" parent="@android:style/TextAppearance.StatusBar.EventContent" />
</resources>